История изменений для 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

релиз на:

Спросите Солема

См. Что нового в Celery 2.5.

Поскольку журнал изменений приобрел значительный размер, в этот раз мы решили поступить по-другому: сделать отдельные документы «Что нового» для основных изменений версии.

Выпуски исправлений по-прежнему можно найти в журнале изменений.

Вернуться на верх