История изменений для Celery 2.5¶
Этот документ содержит примечания к изменениям для выпусков с исправлениями в серии 2.5.x. Обзор нового в Celery 2.5 смотрите в Что нового в Celery 2.5.
Если вы ищете версии, предшествующие 2.5, вам следует посетить наш раздел История релизов.
2.5.5¶
- дата выхода:
2012-06-06 04:00 pm. БСТ
- релиз на:
Спросите Солема
Это фиктивный релиз, выполненный для следующих целей:
Защита от принудительного обновления до Kombu 2.2.0
Четность версии с django-celery
2.5.3¶
- дата выхода:
2012-04-16 07:00 p.m. БСТ
- релиз на:
Спросите Солема
Ошибка приводит к тому, что сообщения отправляются с метками времени UTC, даже если
CELERY_ENABLE_UTC
не было включено (проблема #636).celerybeat
: Больше нет сбоев, если args записи установлен на None (проблема #657).Автозагрузка не работала, если атрибут
__file__
модуля был установлен на файл модулей.pyc
. (Проблема #647).Исправляет раннюю совместимость с 2.5, когда
__package__
не существовало (проблема #638).
2.5.2¶
- дата выхода:
2012-04-13 04:30 вечера по Гринвичу
- релиз на:
Спросите Солема
Новости¶
Теперь зависит от Kombu 2.1.5.
Документация по Django была перенесена в основную документацию Celery.
См. Django.
Новый сигнал
celeryd_init
можно использовать для конфигурирования рабочих по имени хоста.Signal.connect теперь можно использовать в качестве декоратора.
Пример:
from celery.signals import task_sent @task_sent.connect def on_task_sent(**kwargs): print('sent task: %r' % (kwargs,))
Сообщения о недопустимых заданиях теперь отклоняются вместо подтверждения.
Это означает, что они будут перемещены в очередь мертвых букв, введенную в последней версии RabbitMQ (но ее необходимо включить вручную, обратитесь к документации RabbitMQ).
Внутренние вызовы протоколирования были очищены, чтобы лучше работать с такими инструментами, как Sentry.
Внесено Дэвидом Крамером.
Новый метод
subtask.clone()
можно использовать для клонирования существующей подзадачи с дополненными аргументами/опциями.Пример:
>>> s = add.subtask((5,)) >>> new = s.clone(args=(10,), countdown=5}) >>> new.args (10, 5) >>> new.options {'countdown': 5}
Обратные вызовы аккордов теперь срабатывают в нетерпеливом режиме.
Исправления¶
Теперь программы проверяют, что pid-файл действительно записан правильно (проблема #641).
Надеемся, что это приведет к немедленному завершению работы, если в системе закончилось место для хранения полного pid-файла.
Кроме того, теперь мы проверяем, содержат ли существующие pid-файлы новую строку, чтобы частично записанный pid-файл был распознан как поврежденный, как это делалось раньше:
$ echo -n "1" > celeryd.pid
приведет к тому, что рабочий будет думать, что существующий экземпляр уже запущен (в конце концов, init имеет pid 1).
Исправлена проблема совместимости с 2.5 при использовании print_exception.
Исправление внесено Мартином Мелином.
Исправлена проблема совместимости с 2.5 при импорте.
Исправление внесено Юрием Крячко.
Все программы теперь исправляют
__package__
при вызове в качестве main.Это исправляет совместимость с Python 2.5.
Исправление внесено Мартином Мелином.
[celery control|inspect] теперь можно настроить в командной строке.
Как и в случае с рабочим, теперь можно настраивать параметры Celery в командной строке для celery control|inspect
$ celery inspect -- broker.pool_limit=30
Зависимость версии для python-dateutil исправлена на строгую.
Исправление внесено Томасом Месоном.
Task.__call__
теперь оптимизируется в трассировщике задач, а не при создании класса задачи.Это исправляет ошибку, при которой пользовательский __call__ мог таинственным образом исчезнуть.
Улучшена поддержка автозагрузки
inotify
.При участии Мгера Мовсисяна.
Улучшена документация по брокеру Django.
Удалено сбивающее с толку предупреждение в верхней части руководства пользователя по маршрутизации.
2.5.1¶
- дата выхода:
2012-03-01 01:00 GMT
- релиз на:
Спросите Солема
Исправления¶
Eventlet/Gevent: Небольшая опечатка приводила к зависанию рабочего при использовании eventlet/gevent, это происходило из-за того, что среда не была исправлена обезьяной достаточно рано.
Eventlet/Gevent: Еще одна небольшая опечатка приводила к тому, что медиатор запускался с помощью eventlet/gevent, из-за чего рабочий иногда зависал при выключении.
multiprocessing
: Исправлена ошибка, возникавшая, если пул был остановлен до того, как он был правильно запущен.Прокси-объекты теперь перенаправляют
__doc__
и__name__
, так чтоhelp(obj)
работает.Внутренний таймер (timer2) теперь регистрирует исключения, а не проглатывает их (проблема #626).
celery shell: теперь может быть запущен с опциями
--eventlet
или--gevent
для применения своих обезьяньих патчей.
2.5.0¶
- дата выхода:
2012-02-24 04:00 p.m. GMT
- релиз на:
Спросите Солема
Поскольку журнал изменений приобрел значительный размер, в этот раз мы решили поступить по-другому: сделать отдельные документы «Что нового» для основных изменений версии.
Выпуски исправлений по-прежнему можно найти в журнале изменений.