Что нового в Celery 4.2 (windowlicker)¶
- Автор:
Омер Кац (
omer.drow at gmail.com
)
Celery - это простая, гибкая и надежная распределенная система для обработки огромного количества сообщений, предоставляющая операторам инструменты, необходимые для обслуживания такой системы.
Это очередь задач, ориентированная на обработку в реальном времени, а также поддерживающая планирование задач.
Celery имеет большое и разнообразное сообщество пользователей и разработчиков, вам стоит присоединиться к нам on IRC или << 1 >>>.
Чтобы узнать больше о сельдерее, вам следует перейти по ссылке introduction.
Хотя эта версия обратно совместима с предыдущими версиями, важно, чтобы вы прочитали следующий раздел.
Эта версия официально поддерживается на CPython 2.7, 3.4, 3.5 и 3.6, а также поддерживается на PyPy.
Предисловие¶
Выпуск 4.2.0 продолжает совершенствовать наши усилия по предоставлению вам лучшей платформы для выполнения задач на Python.
Этот выпуск в основном представляет собой исправление ошибок, устраняющее некоторые проблемы и регрессии, обнаруженные в Celery 4.0.0.
Традиционно релизы назывались по названиям треков Autechre. Данный релиз продолжает эту традицию в несколько ином ключе. В каждой основной версии Celery в качестве кодовых имен будут использоваться названия треков разных исполнителей.
Отныне серия 4.x будет называться по названиям треков Aphex Twin. Этот релиз назван в честь его очень известного трека Windowlicker.
Спасибо за вашу поддержку!
- Омер Кац
Стена вкладчиков¶
A
Примечание
Эта стена была автоматически сгенерирована из истории git, поэтому, к сожалению, она не включает людей, которые помогают в более важных вещах, таких как ответы на вопросы списка рассылки.
Важные замечания¶
Поддерживаемые версии Python¶
Поддерживаются следующие версии Python:
CPython 2.7
CPython 3.4
CPython 3.5
CPython 3.6
PyPy 5.8 (
pypy2
)
Новости¶
Бэкенды результатов¶
Новый бэкенд результатов Redis Sentinel¶
Redis Sentinel обеспечивает высокую доступность для Redis. Был добавлен новый бэкенд результатов, поддерживающий его.
Бэкенд результатов Cassandra¶
Введена новая опция конфигурации cassandra_options для настройки клиента cassandra.
Дополнительную информацию см. в разделе Настройки бэкенда Cassandra.
Бэкенд результатов DynamoDB¶
Новый параметр конфигурации dynamodb_endpoint_url был введен для того, чтобы направить бэкенд результатов на локальную конечную точку во время разработки или тестирования.
Дополнительную информацию см. в разделе Настройки бэкенда AWS DynamoDB.
Исправления совместимости с Python 2/3¶
Бэкенды результатов CouchDB и Consul принимали байтовые строки без предварительного декодирования их в Unicode. Теперь это больше не так.
Холст¶
Были устранены многочисленные ошибки, в результате чего работа с Canvas стала гораздо более плавной.
Задачи¶
Связанные задачи как обратные вызовы ошибок¶
Мы исправили регрессию, которая возникала, когда связанные задачи использовались в качестве обратных вызовов ошибок. Это работало в Celery 3.x, но вызывало исключение в 4.x до этого выпуска.
И в 4.0, и в 4.1 следующий код не работает:
@app.task(name="raise_exception", bind=True)
def raise_exception(self):
raise Exception("Bad things happened")
@app.task(name="handle_task_exception", bind=True)
def handle_task_exception(self):
print("Exception detected")
subtask = raise_exception.subtask()
subtask.apply_async(link_error=handle_task_exception.s())
Представление задач¶
Затенение имен задач теперь работает так, как ожидалось. Затененное имя правильно отображается в цветах, журналах и следах.
argsrepr и kwargsrepr ранее не использовались, даже если были указаны. Теперь они работают так, как ожидалось. Для получения дополнительной информации смотрите Сокрытие конфиденциальной информации в аргументах.
Пользовательские запросы¶
Теперь мы позволяем задачам использовать пользовательские request
классы для пользовательских классов задач.
Дополнительную информацию см. в разделе Запросы и пользовательские запросы.
Повторные попытки с экспоненциальным отступлением¶
Повторные запросы теперь могут выполняться с экспоненциальным отступлением, чтобы не перегружать внешние службы запросами.
Дополнительную информацию см. в разделе Автоматические повторные попытки для известных исключений.
Расширение сфинкса¶
Задачи должны были автоматически документироваться при использовании Autodoc от Sphinx. В коде, который должен был обеспечить автоматическое документирование, было несколько ошибок, которые теперь исправлены.
Кроме того, расширение теперь документировано должным образом. Смотрите Документирование задач с помощью Sphinx для получения дополнительной информации.