История изменений для Celery 3.0

Если вы ищете версии до 3.0.x, вам следует перейти по ссылке История.

3.0.24

дата выхода:

2013-10-11 04:40 p.m. БСТ

релиз на:

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

  • Теперь зависит от Kombu 2.5.15.

  • Теперь зависит от billiard версии 2.7.3.34.

  • Бэкенд AMQP Result: Больше не кэширует объявления очередей.

    Очереди, создаваемые бэкендом результатов AMQP, всегда уникальны, поэтому кэширование объявлений приводило к медленной утечке памяти.

  • Рабочий: Исправлена ошибка, когда имя хоста содержало символы Unicode.

    Внесен Даодао.

  • Рабочий больше не запускался, если был выбран пул -P solo (проблема #1548).

  • Бэкенды результатов Redis/Cache не завершали аккорды, если любое из заданий повторялось (проблема #1401).

  • Декоратор задач больше не ленится, если приложение завершено.

  • AsyncResult: Исправлена ошибка с copy(AsyncResult) при отсутствии current_app.

  • ResultSet: Теперь правильно распространяет приложение при передаче строковых идентификаторов.

  • Загрузчик теперь игнорирует CELERY_CONFIG_MODULE, если значение является пустой строкой.

  • Исправлено состояние гонки в объекте Proxy, когда он пытался удалить атрибут дважды, что приводило к появлению AttributeError.

  • Методы задач теперь работают с настройкой CELERY_ALWAYS_EAGER (проблема #1478).

  • Очереди Broadcast были случайно объявлены при публикации задач (проблема #1540).

  • Новая переменная окружения C_FAKEFORK может быть использована для отладки init-скриптов.

    Установка этого параметра пропустит шаг демонизации, чтобы можно было увидеть ошибки, выводимые на stderr после закрытия стандартных выходов:

    $ C_FAKEFORK /etc/init.d/celeryd start
    

    Это работает с командой celery multi в целом.

  • get_pickleable_etype не всегда возвращало значение (проблема #1556).

  • Исправлена ошибка, при которой app.GroupResult.restore возвращалось к приложению по умолчанию.

  • Исправлена редкая ошибка, при которой встроенные задачи использовали текущее_приложение.

  • maybe_fileno() теперь обрабатывает ValueError.

3.0.23

дата выхода:

2013-09-02 01:00 p.m. БСТ

релиз на:

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

  • Теперь зависит от Kombu 2.5.14.

  • send_task не выполнил аргументы link и << 2 >>>.

    Это имело побочный эффект: цепочки не вызывали незарегистрированные задачи, молча отбрасывая их.

    Исправление внесено Тейлором Нельсоном.

  • celery.state: Оптимизирован поиск старшинства.

    При участии Мэтта Робенолта.

  • POSIX: Демонизация не перенаправляла sys.stdin на /dev/null.

    Исправление внесено Александром Смирновым.

  • Canvas: ошибка в группе приводила к возврату к приложению по умолчанию при использовании .apply_async (проблема #1516)

  • Canvas: аргументы генератора не всегда были pickleable.

3.0.22

дата выхода:

2013-08-16 04:30 p.m. BST

релиз на:

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

  • Теперь зависит от Kombu 2.5.13.

  • Теперь зависит от billiard 2.7.3.32

  • Исправлена ошибка с месячными и годовыми кронтабами (выпуск #1465).

    Исправление внесено Гийомом Говритом.

  • Исправлена утечка памяти, вызванная временными ограничениями (Выпуск #1129, Выпуск #1427)

  • Worker теперь будет засыпать при перезапуске более 5 раз за одну секунду, чтобы избежать спама событиями worker-online.

  • Включает исправления в документации

    Вклад внесли: Кен Фромм, Андреас Саввидис, Алекс Кирюха, Майкл Фладишер.

3.0.21

дата выхода:

2013-07-05 04:30 p.m. BST

релиз на:

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

  • Теперь зависит от billiard 2.7.3.31.

    В этой версии исправлена ошибка при запуске без расширения billiard C.

  • В версии 3.0.20 нарушена поддержка eventlet/gevent (рабочий не запускается).

  • Исправлена проблема утечки памяти, когда бэкенд результатов MongoDB использовался с пулом gevent.

    Исправление внесено Россом Лоули.

3.0.20

дата выхода:

2013-06-28 04:00 p.m. БСТ

релиз на:

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

  • Содержит обходной путь для решения проблем с тупиковыми ситуациями.

    Лучшее решение станет частью Celery 3.1.

  • Теперь зависит от Kombu 2.5.12.

  • Теперь зависит от billiard 2.7.3.30.

  • Аргумент --loader больше не поддерживал импорт загрузчиков из текущего каталога.

  • [Worker] Исправлена утечка памяти при перезапуске после потери соединения (проблема #1325).

  • [Worker] Исправлена ошибка UnicodeDecodeError при запуске (проблема #1373).

    Исправление внесено Джессикой Таллон.

  • [Worker] Теперь снова корректно переписывает нераспаковываемые исключения.

  • Исправлено возможное состояние гонки при выселении элементов из отозванного набора задач.

  • [generic-init.d] Исправлена совместимость с минимальной оболочкой Dash в Ubuntu (проблема #1387).

    Исправление внесено @monkut.

  • Task.apply/ALWAYS_EAGER теперь также выполняет обратные вызовы и эрбэки (проблема #1336).

  • [Worker] Сигнал worker-shutdown больше не отправлялся (проблема #1339)j

  • [Python 3] Исправлена проблема с threading.Event.

    Исправление внесено Ксавье Ордоки.

  • [Python 3] Теперь обрабатывает io.UnsupportedOperation, который может быть поднят file.fileno() в Python 3.

  • [Python 3] Исправлена проблема с qualname.

  • [events.State] Теперь игнорируются неизвестные группы событий.

  • [Бэкенд MongoDB] Больше не используется устаревший параметр safe.

    Исправление внесено @rfkrocktk.

  • Пул эвентов теперь импортируется в Windows.

  • [Canvas] Исправлена ошибка, при которой неизменяемые члены аккорда могли получать аргументы (проблема #1340).

    Исправление внесено Питером Бруком.

  • Цепочка [Canvas] теперь снова принимает аргумент генератора (проблема #1319).

  • Команда celery.migrate теперь потребляет из всех очередей, если очереди не указаны.

    Исправление внесено Джоном Уотсоном.

3.0.19

дата выхода:

2013-04-17 04:30:00 p.m. БСТ

релиз на:

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

  • Теперь зависит от billiard 2.7.3.28

  • Исправление, связанное с Python 3, смогло отключить исправление тупиковой ситуации, объявленное в версии 3.0.18.

    Были добавлены тесты, чтобы убедиться, что это не повторится.

  • Политика повторных попыток выполнения заданий: По умолчанию max_retries теперь равно 3.

    Это гарантирует, что клиенты не останутся в подвешенном состоянии, пока брокер не работает.

    Примечание

    Вы можете установить более длительный повтор для рабочего с помощью сигнала celeryd_after_setup:

    from celery.signals import celeryd_after_setup
    
    @celeryd_after_setup.connect
    def configure_worker(instance, conf, **kwargs):
        conf.CELERY_TASK_PUBLISH_RETRY_POLICY = {
            'max_retries': 100,
            'interval_start': 0,
            'interval_max': 1,
            'interval_step': 0.2,
        }
    
  • Рабочий: Теперь будет правильно отображать тело сообщения в сообщениях об ошибках, даже если тело является экземпляром буфера.

  • В версии 3.0.18 был сломан бэкенд результатов MongoDB (проблема #1303).

3.0.18

дата выхода:

2013-04-12 05:00:00 BST

релиз на:

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

  • Теперь зависит от kombu 2.5.10.

    См. kombu changelog.

  • Теперь зависит от billiard 2.7.3.27.

  • Теперь можно указать белый список принимаемых сериализаторов с помощью новой настройки CELERY_ACCEPT_CONTENT.

    Это означает, что вы можете заставить рабочий отбрасывать сообщения, сериализованные с помощью pickle и других ненадежных сериализаторов. Например, чтобы разрешить только сериализованные сообщения JSON, используйте:

    CELERY_ACCEPT_CONTENT = ['json']
    

    вы также можете указать типы MIME в белом списке:

    CELERY_ACCEPT_CONTENT = ['application/json']
    
  • Исправлена тупиковая ситуация в пуле мультипроцессора, вызванная тем, что семафор не освобождался при завершении работы по сигналу.

  • Пул процессов: Теперь можно отлаживать процессы пула с помощью GDB.

  • celery report теперь цензурирует возможно секретные настройки, такие как пароли и секретные маркеры.

    Прежде чем вставлять что-либо в Интернет, следует проверить вывод.

  • URL-адреса подключения теперь игнорируют множественные маркеры „+“.

  • Worker/statedb: Теперь используется протокол pickle 2 (Python 2.5+).

  • Исправлены проблемы совместимости с Python 3.

  • Рабочий: Теперь выдается предупреждение, если рабочий запускается с тем же именем узла, что и существующий рабочий.

  • Рабочий: Исправлена тупиковая ситуация, которая могла возникнуть при отзыве заданий (проблема #1297).

  • Worker: Обработчик HUP теперь закрывает все открытые дескрипторы файлов перед перезапуском, чтобы исключить утечку дескрипторов файлов (проблема #1270).

  • Рабочий: Оптимизировано хранение/загрузка списка отозванных заданий (проблема #1289).

    После этого изменения файл celery worker --statedb будет занимать больше места на диске, но загрузка из и хранение отозванных задач будет значительно быстрее (то, что раньше занимало 5 минут, теперь будет занимать меньше секунды).

  • Celery теперь будет предлагать альтернативы, если в имени транспорта брокера допущена опечатка (например, ampq -> amqp).

  • Рабочий: Автозагрузка приводила к сбою, если отслеживаемый файл был отсоединен.

    Фикс предоставлен компанией Agris Ameriks.

  • Исправлена ошибка сбора AsyncResult.

    Исправление внесено Томасом Минором.

  • Исправлена обработка Unicode в выводе журнала при использовании цветов журнала (проблема #427).

  • ConfigurationView теперь является MutableMapping.

    При участии Аарона Харнли.

  • Исправлена утечка памяти в реализации кэша LRU.

    Исправление внесено Ромуальдом Брюне.

  • celery.contrib.rdb: Теперь работает, когда сокеты находятся в неблокирующем режиме.

    Исправление внесено Тео Спирсом.

  • Команда удаленного управления inspect reserved включала активные (запущенные) задачи вместе с зарезервированными задачами (выпуск #1030).

  • Сигнал task_failure получал модифицированный объект трассировки, предназначенный для целей травления, это было исправлено, и теперь он получает реальную трассировку.

  • Декоратор @task молча игнорировал позиционные аргументы, теперь вместо них он выдает ожидаемый TypeError (проблема #1125).

  • Теперь работник будет правильно обрабатывать сообщения с недействительными полями ETA/expires (проблема #1232).

  • Команда дистанционного управления pool_restart теперь сообщает об ошибке, если параметр CELERYD_POOL_RESTARTS не установлен.

  • add_defaults`() теперь можно использовать с объектами не-dict.

  • Исправлены проблемы совместимости в классе Proxy (выпуск #1087).

    Атрибуты класса __module__, __name__ и __doc__ теперь являются осмысленными строковыми объектами.

    Спасибо Мариусу Гедминасу.

  • Бэкенд MongoDB: Настройка MONGODB_BACKEND_SETTINGS теперь принимает ключ option, который позволяет передавать произвольные kwargs базовому объекту pymongo.Connection (выпуск #1015).

  • Бит: Задача ежедневной очистки бэкенда больше не включена для бэкендов результатов, поддерживающих автоматическое истечение срока действия результатов (выпуск #1031).

  • Операции со списком Canvas теперь берут экземпляр приложения из первой задачи в списке, вместо того, чтобы зависеть от current_app (проблема #1249).

  • Рабочий: Сообщение журнала ошибок декодирования сообщений теперь включает информацию об обратном пути.

  • Рабочий: Баннер запуска теперь включает системную платформу.

  • celery inspect|status|control теперь выдает ошибку при использовании с транспортом брокера на основе SQL.

3.0.17

дата выхода:

2013-03-22 04:00:00. UTC

релиз на:

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

  • Теперь зависит от kombu 2.5.8

  • Теперь зависит от бильярда 2.7.3.23

  • RabbitMQ/Redis: реализация ограничения скорости без потоков и блокировок.

    Это означает, что ограничения скорости создают минимальные накладные расходы при использовании RabbitMQ/Redis или будущих транспортов, использующих event-loop, и что реализация ограничений скорости теперь без потоков и блокировок.

    Транспорты, основанные на потоках, пока будут использовать старую реализацию, но в Celery 3.1 планируется использовать таймер и для других брокерских транспортов.

  • Ограничения тарифов теперь работают с eventlet/gevent при использовании RabbitMQ/Redis в качестве брокера.

  • Регрессия привела к тому, что task.retry игнорировал дополнительные аргументы ключевых слов.

    Дополнительные аргументы ключевых слов теперь снова используются в качестве опций выполнения. Исправление внесено Саймоном Энгледью.

  • Windows: Исправлена проблема с тем, что при запуске рабочего пытались выбрать модуль настроек Django.

  • generic-init.d: Больше нет двойных кавычек $CELERYD_CHDIR (проблема #1235).

  • generic-init.d: Удаляет синтаксис, специфичный для bash.

    Исправление внесено Пяром Висландером.

  • Бэкенд результатов Cassandra: Теперь обрабатывает ошибку AllServersUnavailable (проблема #1010).

    Исправление внесено Джаредом Билом.

  • Результат: Теперь при десериализации приложения правильно перенаправляются в GroupResults (проблема #1249).

    Исправление внесено Чарльзом-Акселем Дейном.

  • GroupResult.revoke теперь поддерживает аргументы ключевых слов terminate и signal.

  • Рабочий: Рабочие многопроцессорные пулы теперь импортируют модули задач/конфигурацию перед настройкой системы протоколирования, чтобы сигналы протоколирования могли быть подключены до их отправки.

  • аккорд: Возвращаемый экземпляр AsyncResult теперь имеет атрибут parent, установленный в заголовок GroupResult.

    Это соответствует тому, как работает chain.

3.0.16

дата выхода:

2013-03-07 04:00:00. UTC

релиз на:

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

  • С Международным женским днем!

    Нам предстоит пройти долгий путь, поэтому это шанс для вас принять участие в работе одной из организаций, работающих над тем, чтобы сделать наши сообщества более разнообразными.

  • Теперь зависит от kombu версии 2.5.7

  • Теперь зависит от billiard версии 2.7.3.22

  • Сердцебиение AMQP теперь отключено по умолчанию.

    Некоторые пользователи испытывают проблемы с включенным сердцебиением, и его использование не является строго необходимым.

    Если у вас возникли проблемы с обнаружением обрывов соединения, вы можете снова включить сердцебиение, настроив параметр BROKER_HEARTBEAT.

  • Worker: Теперь распространяет ошибки соединения, возникающие в обратных вызовах многопроцессорной обработки, чтобы можно было сбросить соединение (проблема #1226).

  • Рабочий: Теперь распространяет ошибки соединения, возникающие в обратных вызовах таймера, чтобы можно было сбросить соединение.

  • Модули в CELERY_IMPORTS и CELERY_INCLUDE теперь импортируются в первоначальном порядке (выпуск #1161).

    Модули в CELERY_IMPORTS будут импортированы первыми, затем их продолжит CELERY_INCLUDE.

    Спасибо Джоуи Вильгельму.

  • Новое завершение bash для celery доступно в git-репозитории:

    https://github.com/celery/celery/tree/3.0/extra/bash-completion

    Вы можете использовать этот файл в качестве источника или поместить его в bash_completion.d, чтобы получить автозаполнение для утилиты командной строки celery.

  • Имя узла рабочего теперь может включать символы юникода (выпуск #1186).

  • Repr объекта crontab теперь отображается правильно (проблема #972).

  • events.State больше не изменяет исходный словарь событий.

  • Больше не использует Logger.warn, устаревший в Python 3.

  • Бэкэнд кэша: Теперь снова работает с аккордами (выпуск #1094).

  • Разблокировка аккордов теперь обрабатывает ошибки, возникающие при вызове обратного вызова.

  • Общий рабочий скрипт init.d: Проверка состояния теперь выполняется путем запроса pid экземпляра вместо отправки сообщений.

    Внесен Миленом Павловым.

  • Улучшены init-скрипты для CentOS.

    • Обновлено для поддержки конвенций Celery 3.x.

    • Теперь используются встроенные в CentOS status и killproc.

    • Поддержка многоузловых / многопидовых рабочих служб.

    • Стандартный вывод CentOS service-init с цветовой кодировкой.

    • Набор тестов.

    Внесен Миленом Павловым.

  • ResultSet.join теперь всегда работает при пустом наборе результатов (проблема #1219).

  • Теперь поддерживается group, состоящий из одной задачи (выпуск #1219).

  • Теперь поддерживает программу pycallgraph (выпуск #1051).

  • Исправлены проблемы совместимости с Jython.

  • Учебник по Django: Теперь упоминается, что пример приложения должен быть добавлен в INSTALLED_APPS (Выпуск #1192).

3.0.15

дата выхода:

2013-02-11 04:30:00 p.m. UTC

релиз на:

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

  • Теперь зависит от billiard 2.7.3.21, в которой исправлена ошибка синтаксиса.

  • Исправлена ошибка с CELERY_SEND_TASK_SENT_EVENT.

3.0.14

дата выхода:

2013-02-08 05:00:00 p.m. UTC

релиз на:

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

  • Теперь зависит от Kombu 2.5.6

  • Теперь зависит от бильярда 2.7.3.20

  • execv теперь отключен по умолчанию.

    Он создавал слишком много проблем для пользователей, но вы все еще можете включить его с помощью параметра CELERYD_FORCE_EXECV.

    execv был включен только при использовании транспортов, отличных от AMQP/Redis, и он предназначен для предотвращения тупиков, вызванных тем, что мьютексы не освобождаются до форка процесса. К сожалению, это также изменяет среду, внося множество ошибок, которые трудно исправить без добавления ужасных хаков. О проблемах с тупиками сообщается гораздо реже, чем об ошибках, которые вызывает execv, поэтому мы теперь отключаем его по умолчанию.

    Ведется работа по созданию неблокирующих версий этих транспортов, чтобы execv не был необходим (как это происходит с транспортами брокеров amqp и redis).

  • Определено поведение исключения аккордов (проблема #1172).

    Начиная с Celery 3.1 обратный вызов хорды будет менять состояние на FAILURE, когда задача, являющаяся частью хорды, вызывает исключение.

    Никогда не документировалось, что происходит в этом случае, и фактическое поведение было очень неудовлетворительным, действительно, оно просто передает значение исключения в обратный вызов chord.

    По соображениям обратной совместимости мы не переходим на новое поведение в выпуске исправлений, даже если текущее поведение никогда не было документировано. Вместо этого вы можете включить параметр CELERY_CHORD_PROPAGATES, чтобы получить новое поведение, которое будет использоваться по умолчанию в Celery 3.1.

    Смотрите больше на Обработка ошибок.

  • рабочий: Исправлена ошибка с игнорированием и повторным выполнением заданий.

    Обратные вызовы on_chord_part_return и Task.after_return, а также сигнал task_postrun должны вызываться, когда задача была повторно опробована/игнорирована.

    Исправление внесено Владом.

  • GroupResult.join_native теперь уважает аргумент propagate.

  • subtask.id добавлен как псевдоним к subtask['options'].id

    >>> s = add.s(2, 2)
    >>> s.id = 'my-id'
    >>> s['options']
    {'task_id': 'my-id'}
    
    >>> s.id
    'my-id'
    
  • worker: Исправлена ошибка Could not start worker processes, возникающая при перезапуске после разрыва соединения (выпуск #1118).

  • Добавляет новый сигнал task-retried (выпуск #1169).

  • celery events –dumper теперь обрабатывает потерю соединения.

  • Теперь будет повторно отправлять отправленное событие в случае сбоя соединения.

  • amqp backend: Теперь используется Message.requeue вместо повторной публикации сообщения после опроса.

  • Введена новая настройка BROKER_HEARTBEAT_CHECKRATE для изменения частоты отслеживания сердцебиений соединения брокера.

    Значение по умолчанию также было изменено с 3,0 на 2,0.

  • celery.events.state.State теперь можно выбирать.

    Исправление внесено Мгером Мовсисяном.

  • celery.utils.functional.LRUCache теперь можно выбирать.

    Исправление внесено Мгером Мовсисяном.

  • Команда stats broadcast теперь включает pid рабочих.

    При участии Мгера Мовсисяна.

  • Новая команда пульта conf для получения рабочей текущей конфигурации.

    При участии Мгера Мовсисяна.

  • Добавляет возможность изменять аргумент обратного отсчета задачи разблокировки аккордов (выпуск #1146).

    При участии Дзюна Сакаи

  • бить: Планировщик теперь использует метод now()` расписания, так что расписания могут предоставлять пользовательский способ получения текущей даты и времени.

    При участии Рафаэля Слинкса

  • Исправлена травля модулей конфигурации в Windows или при использовании execv (проблема #1126).

  • Многопроцессорный регистратор теперь по умолчанию настроен на уровень журнала ERROR.

    Начиная с версии 3.0 многопроцессорные регистраторы были отключены по умолчанию (настраивались только при установке переменной окружения MP_LOG).

3.0.13

дата выхода:

2013-01-07 04:00:00 p.m. UTC

релиз на:

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

  • Теперь зависит от Kombu 2.5

    • amqp заменил amqplib в качестве транспорта по умолчанию, получив поддержку AMQP 0.9 и расширений RabbitMQ, включая уведомления об отмене потребителя и сердцебиение.

    • поддержка нескольких URL-адресов подключения для обхода отказа.

    • Подробнее читайте в Kombu 2.5 changelog.

  • Теперь зависит от бильярда 2.7.3.19

  • Исправлена проблема блокировки, которая могла возникнуть, когда пул производителей наследовал экземпляр пула соединений родительского процесса.

  • Опция --loader теперь снова работает (проблема #1066).

  • celery зонтичная команда: Все подкоманды теперь поддерживают опцию --workdir (выпуск #1063).

  • Группы, включенные в цепочки, теперь выдают GroupResults (выпуск #1057)

    Ранее он неправильно добавлял обычный результат вместо результата группы, но теперь это работает:

    >>> # [4 + 4, 4 + 8, 16 + 8]
    >>> res = (add.s(2, 2) | group(add.s(4), add.s(8), add.s(16)))()
    >>> res
    <GroupResult: a0acf905-c704-499e-b03a-8d445e6398f7 [
        4346501c-cb99-4ad8-8577-12256c7a22b1,
        b12ead10-a622-4d44-86e9-3193a778f345,
        26c7a420-11f3-4b33-8fac-66cd3b62abfd]>
    
  • Цепочки теперь могут соединять другие цепочки и использовать частичные аргументы (проблема #1057).

    Пример:

    >>> c1 = (add.s(2) | add.s(4))
    >>> c2 = (add.s(8) | add.s(16))
    
    >>> c3 = (c1 | c2)
    
    >>> # 8 + 2 + 4 + 8 + 16
    >>> assert c3(8).get() == 38
    
  • Подзадачи теперь можно использовать с незарегистрированными задачами.

    Вы можете указывать подзадачи, даже если у вас просто имя:

    >>> s = subtask(task_name, args=(), kwargs=())
    >>> s.delay()
    
  • Команда celery shell теперь всегда добавляет текущий каталог к пути модуля.

  • Теперь рабочий будет правильно обрабатывать исключение pytz.AmbiguousTimeError, возникающее при подготовке ETA/отсчета времени при переходе на DST (проблема #1061).

  • force_execv: Теперь гарантирует, что символы задач в оригинальных модулях задач всегда будут использовать правильный экземпляр приложения (проблема #1072).

  • Бэкенд AMQP: Теперь повторно публикует сообщения о результатах, которые были опрошены (используя result.ready() и друзей, result.get() не будет делать этого в этой версии).

  • Значения расписания Crontab теперь можно «обернуть вокруг»

    Это означает, что значения типа 11-1 переводятся в [11, 12, 1].

    Внесен Лореном Абрамсом.

  • Команда multi stopwait теперь показывает pid процессов.

    Внесен Лореном Абрамсом.

  • Обработка ETA/countdown исправлена, когда CELERY_ENABLE_UTC

    отключена (проблема #1065).

  • В сообщения включался ряд ненужных свойств, вызванных случайной передачей Queue.as_dict в качестве свойств сообщения.

  • Предельные значения скорости теперь могут быть плавающими

    Это также расширяет формат строки, чтобы значения типа "0.5/s" работали.

    При участии Кристофа Крибуса

  • Исправлена опечатка в документации по широковещательной маршрутизации (выпуск #1026).

  • Переписал запутанный раздел об идемпотентности в руководстве пользователя задачи.

  • Исправлена опечатка в руководстве по демонизации (выпуск #1055).

  • Исправлено несколько опечаток в документации.

    Внесено Мариусом Гедминасом.

  • Пакеты: Теперь работает при использовании пула эвентов.

    Исправление внесено Томасом Грейнджером.

  • Пакеты: Добавлен пример отправки результатов в celery.contrib.batches.

    Внесено Томасом Грейнджером.

  • Бэкенд MongoDB: Соединение max_pool_size теперь может быть установлено в CELERY_MONGODB_BACKEND_SETTINGS.

    При участии Крейга Юнкинса.

  • Исправлена проблема при использовании ранних версий pytz.

    Исправление внесено Владом.

  • Документация обновлена для включения значения по умолчанию для параметра CELERY_TASK_RESULT_EXPIRES.

  • Улучшения в учебнике django-celery.

    Внесено Locker537.

  • Управляющая команда add_consumer не сохраняла должным образом добавление новых очередей, чтобы они пережили разрыв соединения (проблема #1079).

3.0.12

дата выхода:

2012-11-06 02:00 pm. UTC

релиз на:

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

  • Теперь зависит от kombu 2.4.8

    • [Redis] Новый и улучшенный алгоритм цикла справедливой очереди (Кевин МакКарти).

    • [Redis] Теперь при восстановлении сообщений используется мьютекс на базе Redis.

    • [Redis] Количество сообщений, которые могут быть восстановлены за один интервал, нет

      больше не ограничена (но может быть установлена с помощью unacked_restore_limit transport option).

    • Значение сердцебиения может быть указано в URL-адресах брокеров (Мгер Мовсисян).

    • Исправлена проблема с msgpack на Python 3 (Джаспер Брайант-Грин).

  • Теперь зависит от бильярда 2.7.3.18

  • Celery теперь можно использовать с инструментами статического анализа, такими как PyDev/PyCharm/pylint и т.д.

  • Документация по разработке переехала в раздел Read The Docs.

  • Новый параметр CELERY_QUEUE_HA_POLICY, используемый для установки политики HA по умолчанию для очередей при использовании RabbitMQ.

  • Новый метод Task.subtask_from_request возвращает подзадачу, используя текущий запрос.

  • Метод results get_many не учитывал аргумент timeout.

    Исправление внесено Ремигиушем Моджеевским

  • Скрипты generic_init.d теперь поддерживают установку CELERY_CREATE_DIRS для постоянного создания каталогов log и pid (выпуск #1045).

    Это может быть установлено в вашем /etc/default/celeryd.

  • Исправлена странная проблема импорта kombu на Python 3.2 (проблема #1034).

  • Рабочий: Планировщик ETA теперь использует миллисекундную точность (проблема #1040).

  • Аргумент --config в программах теперь поддерживается всеми загрузчиками.

  • Настройка CASSANDRA_OPTIONS теперь документирована.

    При участии Джареда Била.

  • Методы задач (celery.contrib.methods) не могут быть использованы со старым базовым классом задач, декоратор задач в этом модуле теперь наследуется от нового.

  • Оптимизация была слишком нетерпеливой и приводила к тому, что некоторые сообщения журнала никогда не выходили.

  • celery.contrib.batches теперь снова работает.

  • Исправлено отсутствие пробелов в требованиях bdist_rpm (проблема #1046).

  • Предел применения состояния события tasks_by_name перед фильтрацией по имени.

    Исправление внесено Александром А. Сосновским.

3.0.11

дата выхода:

2012-09-26 04:00 p.m. UTC

релиз на:

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

  • [security:low] скрипты generic-init.d изменили разрешения /var/log & /var/run

    В учебнике по демонизации рекомендуемые каталоги были следующими:

    CELERYD_LOG_FILE="/var/log/celery/%n.log"
    CELERYD_PID_FILE="/var/run/celery/%n.pid"
    

    Но в самих скриптах файлы по умолчанию были /var/log/celery%n.log и /var/run/celery%n.pid, так что если пользователь не изменил расположение по конфигурации, то каталоги /var/log и << 3 >>> будут созданы - и, что еще хуже, изменены их разрешения и владельцы.

    Это изменение означает, что:

    • Файл pid по умолчанию /var/run/celery/%n.pid.

    • Файл журнала по умолчанию /var/log/celery/%n.log.

    • Каталоги создаются и изменяют свои разрешения только в том случае, если не заданы пользовательские расположения.

    Пользователи могут принудительно создавать пути, вызывая подкоманду create-paths:

    $ sudo /etc/init.d/celeryd create-paths
    

    Обновление Celery не приводит к обновлению init-скриптов

    Чтобы обновить init-скрипты, необходимо повторно загрузить файлы из системы управления исходными кодами и обновить их вручную. Вы можете найти init-скрипты для версии 3.0.x по адресу:

  • Теперь зависит от бильярда 2.7.3.17

  • Исправление защиты стека запросов при инициализации приложения более одного раза (проблема #1003).

  • Задачи ETA теперь корректно работают, когда системный часовой пояс не совпадает с настроенным часовым поясом (проблема #1004).

  • Завершение задания теперь работает, если задание было отправлено в пул, но еще не подтверждено процессом пула (проблема #1007).

    Исправление предоставлено Алексеем Зателепиным

  • Завершение задачи теперь правильно обновляет состояние задачи на отозванное и отправляет событие task-revoked.

  • Generic worker init-script теперь по умолчанию ожидает выключения рабочих.

  • Multi: Больше не анализируется опция –app (проблема #1008).

  • Multi: команда stop_verify переименована в stopwait.

  • Демонизация: Теперь задерживает попытку создания pidfile/logfile до тех пор, пока не будет изменен рабочий каталог.

  • Команды celery worker и celery beat теперь учитывают опцию --no-color (выпуск #999).

  • Исправлены опечатки в примерах eventlet (Выпуск #1000)

    Исправление внесено Брайаном Бишопом. Поздравляем с открытием ошибки #1000!

  • Задачи, при выполнении которых появляется сообщение Ignore, теперь распознаются.

  • Бит: Теперь показывает имя записи в журнале sending due task.

3.0.10

дата выхода:

2012-09-20 05:30 p.m. BST

релиз на:

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

  • Теперь зависит от kombu 2.4.7

  • Теперь зависит от бильярда 2.7.3.14

    • Исправляет крах при запуске при использовании Django и проектов до версии 1.4 (setup_environ).

    • Жесткие временные ограничения теперь посылают сигнал KILL вскоре после TERM, чтобы завершить процессы, обработчики сигналов которых заблокированы расширениями C.

    • Billiard теперь устанавливается, даже если расширение C не может быть создано.

      По-прежнему рекомендуется собирать расширение на C, если вы используете транспорт, отличный от RabbitMQ/Redis (или используете принудительный execv по какой-либо другой причине).

    • Pool теперь устанавливает атрибут current_process().index, который может быть использован для создания такого количества файлов журнала, сколько процессов в пуле.

  • Canvas: аккорд/группа/цепочка больше не изменяют состояние при вызове

    Ранее вызов аккорда/группы/цепочки изменял идентификаторы подзадач таким образом:

    >>> c = chord([add.s(2, 2), add.s(4, 4)], xsum.s())
    >>> c()
    >>> c() <-- call again
    

    во второй раз идентификаторы задач будут такими же, как и в предыдущем вызове. Теперь это исправлено, так что вызов подзадачи не изменит никаких опций.

  • Холст: Привязка аккорда к другой задаче теперь работает (проблема #965).

  • Рабочий: Исправлена ошибка, при которой стек запросов мог быть поврежден, если использовались относительные импорты.

    Проблема обычно проявлялась в виде исключения при попытке отправить результат неудачного задания (NoneType does not have id attribute).

    Исправление внесено Сэмом Куком.

  • Задачи теперь могут поднимать Ignore, чтобы пропустить обновление состояний или событий после возврата.

    Пример:

    from celery.exceptions import Ignore
    
    @task
    def custom_revokes():
        if redis.sismember('tasks.revoked', custom_revokes.request.id):
            raise Ignore()
    
  • Теперь рабочий убеждается, что стеки запросов/задач не были изменены начальным Task.__call__.

    Раньше это было бы проблемой, если бы класс пользовательской задачи определял __call__ и также называл super().

  • Из-за проблем быстрая локальная оптимизация была отключена и может быть включена только установкой атрибута USE_FAST_LOCALS.

  • Worker: Теперь при выключении по умолчанию устанавливается таймаут сокета в 5 секунд, чтобы прерванное чтение сокета не мешало правильному выключению (проблема #975).

  • Дополнительные исправления, связанные с исправлением поздних событий/гевентов.

  • Документация для установок, несовместимых с реальностью:

    • CELERY_TASK_PUBLISH_RETRY

      Документирован как отключенный по умолчанию, но он был включен по умолчанию с версии 2.5, как указано в журнале изменений версии 2.5.

    • CELERY_TASK_PUBLISH_RETRY_POLICY

      Значение max_retries по умолчанию было установлено на 100, но в документах значилось как 3, а значение interval_max было установлено на 1, но в документах значилось как 0,2. Теперь по умолчанию установлены значения 3 и 0,2, как и было изначально задокументировано.

    Исправление внесено Мэттом Лонгом.

  • Рабочий: Улучшены сообщения в журнале при установлении и потере соединения.

  • Значение „0“ для расписания Crontab должно быть „*“ (проблема #972).

  • Отозванные задания теперь удаляются из зарезервированного/активного состояния в рабочем (выпуск #969)

    Исправление внесено Алексеем Зателепиным.

  • gevent: Теперь поддерживаются жесткие временные ограничения с использованием gevent.Timeout.

  • Документация: Ссылки на init-скрипты теперь указывают на ветку 3.0 вместо ветки разработки (master).

  • Документация: Исправлена опечатка в руководстве пользователя сигналов (проблема #986).

    instance.app.queues -> instance.app.amqp.queues.

  • Eventlet/gevent: Рабочий не установил должным образом пользовательское приложение для новых гринлетов.

  • Eventlet/gevent: Исправлена ошибка, при которой рабочий не мог восстановиться после потери соединения (проблема #959).

    Также, из-за предполагаемой ошибки в gevent параметр BROKER_CONNECTION_TIMEOUT был отключен при использовании gevent

3.0.9

дата выхода:

2012-08-31 06:00 p.m. BST

релиз на:

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

  • Важное замечание для пользователей Django и планировщика баз данных!

    Недавно была исправлена проблема с часовыми поясами для периодических задач, но ошибочные часовые пояса уже могли быть сохранены в базе данных, поэтому для того, чтобы исправление сработало, необходимо сбросить поля last_run_at.

    Это можно сделать, выполнив следующую команду:

    $ python manage.py shell
    >>> from djcelery.models import PeriodicTask
    >>> PeriodicTask.objects.update(last_run_at=None)
    

    Это также необходимо сделать, если вы измените часовой пояс или настройки CELERY_ENABLE_UTC.

  • Обратите внимание на настройку CELERY_ENABLE_UTC.

    Если вы ранее отключили эту функцию, чтобы заставить периодические задачи работать с вашим часовым поясом, то теперь вам рекомендуется включить ее снова.

  • Теперь зависит от Kombu 2.4.5, в которой исправлена установка PyPy + Jython.

  • Исправлена ошибка с часовыми поясами, когда CELERY_ENABLE_UTC отключено (выпуск #952).

  • Исправлена опечатка в механизме обновления celerybeat (выпуск #951).

  • Убедитесь, что аргумент exc_info для логирования разрешен (проблема #899).

  • Исправлена проблема с Python 3.2 и переполнением таймаута соединения потоков (выпуск #796).

  • В тестовом примере для Python 2.5 иногда возникали сбои.

  • Набор модульных тестов теперь подходит для PyPy 1.9.

  • Экземпляры приложений теперь поддерживают оператор with.

    Это вызывает новый метод app.close() при выходе, который очищает приложение, например, закрывает соединения пула.

    Обратите внимание, что это необходимо только при динамическом создании приложений, например, «временных» приложений.

  • Поддержка передачи подзадачи в цепочку.

    Например:

    pipe = sometask.s() | othertask.s()
    new_pipe = mytask.s() | pipe
    

    Внесено Стивом Морином.

  • Исправлена проблема с групповыми результатами на непиксельных сериализаторах.

    Исправление внесено Стивом Морином.

3.0.8

дата выхода:

2012-08-29 05:00 p.m. BST

релиз на:

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

  • Теперь зависит от Kombu 2.4.4

  • Исправлена проблема с amqplib и получением больших полезных нагрузок сообщений (проблема #922).

    Проблема проявлялась либо в зависании рабочего, либо в появлении исключения Framing error.

    Пользователи нового транспорта pyamqp:// должны обновить его до amqp 0.9.3.

  • Бит: Исправлена еще одна ошибка с часовыми поясами в расписаниях интервалов и Crontab (выпуск #943).

  • Бит: Файл расписания теперь автоматически очищается при изменении часового пояса.

    Расписание также очищается при обновлении до версии 3.0.8 с более ранней версии, это делается для регистрации первоначальной информации о часовом поясе.

  • События: Событие worker-heartbeat теперь включает поля подсчета обработанных и активных данных.

    При участии Мгера Мовсисяна.

  • Исправлена ошибка с письмом об ошибке и новыми классами задач (выпуск #931).

  • BaseTask.__call__ больше не оптимизируется, если он был исправлен обезьяной.

  • Исправлена проблема выключения при использовании gevent (Выпуск #911 и Выпуск #936).

    Исправление внесено Томасом Месоном.

3.0.7

дата выхода:

2012-08-24 05:00 p.m. BST

релиз на:

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

  • Исправляет несколько проблем с периодическими задачами и часовыми поясами (выпуск #937).

  • Теперь зависит от kombu 2.4.2

    • Redis: Исправление сбоя, связанного с состоянием гонки

    • Устраняет бесконечный цикл, который мог произойти при повторной попытке установить соединение с брокером.

  • Демоны теперь перенаправляют стандартные файловые дескрипторы на /dev/null

    Хотя по умолчанию стандартные выходы также перенаправляются в логгер, но вы можете отключить это, изменив настройку CELERY_REDIRECT_STDOUTS.

  • Устраняет возможные проблемы, когда eventlet/gevent исправляется слишком поздно.

  • LoggingProxy больше не определяет fileno() (проблема #928).

  • Результаты теперь игнорируются для задачи разблокировки аккордов.

    Исправление внесено Стивом Морином.

  • Бэкенд Cassandra теперь работает, если отключено истечение срока действия результатов.

    Исправление внесено Стивом Морином.

  • Объект traceback теперь передается в обработчики сигналов вместо строкового представления.

    Исправление внесено Адамом ДеПю.

  • Команда Celery: Расширения теперь сортируются по имени.

  • Регрессия привела к тому, что событие task-failed отправлялось с объектом исключения вместо его строкового представления.

  • Рабочий демон пытался создать файл pid перед демонизацией, чтобы отловить ошибки, но этот файл не сразу освобождался (проблема #923).

  • Исправлена совместимость с Jython.

  • billiard.forking_enable вызывался всеми пулами, а не только пулом процессов, что привело бы к бесполезному предупреждению, если бы расширения billiard C не были установлены.

3.0.6

дата выхода:

2012-08-17 11:00 Спроси у Солема

  • Теперь зависит от kombu 2.4.0

  • Теперь зависит от бильярда 2.7.3.12

  • Redis: Celery теперь пытается восстановить сообщения, когда в очереди нет сообщений.

  • Расписания Crontab теперь правильно учитывают настройку CELERY_TIMEZONE.

    Важно отметить, что расписания Crontab по умолчанию используют время UTC, если этот параметр не установлен.

    Выпуск #904 и django-celery #150.

  • billiard.enable_forking теперь устанавливается только пулом процессов.

  • Транспорт теперь правильно отображается celery report (проблема #913).

  • Аргумент –app теперь работает, если последняя часть является именем модуля (проблема #921).

  • Исправлена проблема с нецелочисленными исключениями (бильярд #12).

  • Добавляет атрибут task_name к EagerResult, который всегда None (проблема #907).

  • Старый класс Task в celery.task больше не принимает магические kwargs по умолчанию (проблема #918).

    Когда-то давно регрессия отключила магические гномы для них, и поскольку никто не жаловался на это, у нас нет стимула исправлять это сейчас.

  • Управляющая команда inspect reserved работала некорректно.

  • Теперь должен лучше работать с инструментами для статического анализа за счет явного указания динамически создаваемых атрибутов в модулях celery и << 1 >>>.

  • Завершение задачи теперь приводит к RevokedTaskError вместо WorkerLostError.

  • AsyncResult.revoke теперь принимает аргументы terminate и signal.

  • Событие task-revoked теперь включает новые поля: terminated, signum и expired.

  • Аргументом к TaskRevokedError теперь является одна из причин revoked, expired или terminated.

  • Старый класс Task больше не использует classmethod для push_request и pop_request (проблема #912).

  • GroupResult теперь поддерживает атрибут children (выпуск #916).

  • AsyncResult.collect теперь уважает аргумент intermediate (проблема #917).

  • Исправление примера задачи в документации (выпуск #902).

  • Eventlet исправлен таким образом, чтобы среда была исправлена как можно скорее.

  • eventlet: Теперь предупреждает, если модули, связанные с Celery и зависящие от потоков, импортируются до того, как eventlet будет исправлен.

  • Улучшены примеры событий и камер в руководстве по мониторингу.

  • Отключает точки входа команды celery setuptools, если команда не может быть загружена.

  • Исправлен сломанный пример dump_request в руководстве по задачам.

3.0.5

дата выхода:

2012-08-01 04:00 pm. БСТ

релиз на:

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

  • Теперь зависит от kombu 2.3.1 + billiard 2.7.3.11

  • Исправлена ошибка с опцией -B (cannot pickle thread.lock objects) (Выпуск #894 + Выпуск #892, + django-celery #154).

  • Управляющая команда restart_pool теперь требует включения параметра CELERYD_POOL_RESTARTS

    Это изменение было необходимо, поскольку событие мультипроцессинга, от которого зависит команда перезапуска, отвечает за создание множества семафоров/файловых дескрипторов, что приводит к проблемам в некоторых средах.

  • chain.apply теперь передает args первой задаче (проблема #889).

  • Документированы ранее секретные опции монитора django-celery в руководстве пользователя мониторинга (выпуск #396).

  • Старый журнал изменений теперь организован в отдельные документы для каждой серии, см. История.

3.0.4

дата выхода:

2012-07-26 07:00 p.m. БСТ

релиз на:

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

  • Теперь зависит от Kombu 2.3

  • Новый экспериментальный автономный монитор Celery: Цветок

    Смотрите Цветок: Веб-монитор Celery в реальном времени, чтобы узнать об этом больше!

    При участии Мгера Мовсисяна.

  • Теперь поддерживаются сердцебиения AMQP при использовании нового транспорта pyamqp://.

    • Транспорт amqp требует установки библиотеки << 1 >>>:

      $ pip install amqp
      
    • Затем необходимо установить префикс транспортного URL в pyamqp://.

    • По умолчанию значение сердцебиения составляет 10 секунд, но его можно изменить с помощью параметра BROKER_HEARTBEAT:

      BROKER_HEARTBEAT = 5.0
      
    • Если для пульса брокера установлено значение 10 секунд, пульс будет отслеживаться каждые 5 секунд (удвоенная частота пульса).

    Более подробную информацию см. в Kombu 2.3 changelog.

  • Теперь поддерживаются уведомления RabbitMQ Consumer Cancel Notifications, использующие транспорт pyamqp://.

    Это необходимо при работе RabbitMQ в кластере.

    Более подробную информацию см. в Kombu 2.3 changelog.

  • Информация о доставке больше не передается напрямую.

    Было обнаружено, что транспорт SQS добавляет объекты, которые нельзя пикировать, в отображение информации о доставке, поэтому нам пришлось снова вернуться к использованию белого списка.

    Исправление этой ошибки также означает, что транспорт SQS теперь снова работает.

  • Семафор не освобождался должным образом, когда задача была отозвана (проблема #877).

    Это может привести к тому, что задания будут проглочены и не будут освобождены до перезагрузки рабочего места.

    Спасибо Hynek Schlawack за отладку проблемы.

  • Повторное выполнение задания теперь также пересылает все связанные задания.

    Это означает, что если задача является частью цепочки (или связана каким-либо другим способом), и даже если задача будет повторно выполнена, то следующая задача в цепочке будет выполнена, когда повторная попытка будет успешной.

  • Аккорды: Теперь поддерживается задание интервала и других аргументов ключевых слов в задаче разблокировки аккордов.

    • Теперь интервал можно задать как часть подзадачи kwargs:

      chord(header)(body, interval=10.0)
      
    • Кроме того, задача разблокировки аккордов теперь использует параметр Task.default_retry_delay, используемый, когда не указан ни один из них, что также означает, что интервал по умолчанию может быть изменен с помощью аннотаций:

      CELERY_ANNOTATIONS = {
          'celery.chord_unlock': {
              'default_retry_delay': 10.0,
          }
      }
      
  • Новый метод app.add_defaults() может добавить новые словари конфигурации по умолчанию в конфигурацию приложений.

    Например:

    config = {'FOO': 10}
    
    app.add_defaults(config)
    

    то же самое, что и app.conf.update(config), за исключением того, что данные не будут копироваться, и что они не будут выбраковываться, когда рабочий порождает дочерние процессы.

    Кроме того, метод принимает вызываемый параметр:

    def initialize_config():
        # insert heavy stuff that can't be done at import time here.
    
    app.add_defaults(initialize_config)
    

    что означает то же самое, что и выше, за исключением того, что это не произойдет до тех пор, пока конфигурация Celery не будет действительно использована.

    В качестве примера, Celery может лениво использовать конфигурацию приложения Flask:

    flask_app = Flask()
    app = Celery()
    app.add_defaults(lambda: flask_app.config)
    
  • Отозванные задания не помечались как отозванные в бэкенде результатов (проблема #871).

    Исправление внесено Хинеком Шлаваком.

  • Event-loop теперь правильно обрабатывает случай, когда объект epoll poller был закрыт (проблема #882).

  • Исправлена синтаксическая ошибка в funtests/test_leak.py

    Исправление внесено Каталином Якобом.

  • группа/куски: Теперь принимает пустой список задач (выпуск #873).

  • Новые названия методов:

    Старые имена все еще работают для обратной совместимости.

3.0.3

дата выхода:

2012-07-20 09:17 p.m. БСТ

релиз на:

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

  • amqplib передает объект канала как часть delivery_info, и он не является pickleable, поэтому мы его удаляем.

3.0.2

дата выхода:

2012-07-20 04:00 p.m. БСТ

релиз на:

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

  • Ошибка привела к тому, что следующие параметры задачи не принимали значения по умолчанию из файла

    конфигурация (Выпуск #867 + Выпуск #858)

    Были затронуты следующие настройки:

    • CELERY_IGNORE_RESULT

    • CELERYD_SEND_TASK_ERROR_EMAILS

    • CELERY_TRACK_STARTED

    • CElERY_STORE_ERRORS_EVEN_IF_IGNORED

    Исправление внесено Джоном Уотсоном.

  • Запрос задачи: delivery_info теперь передается как есть (выпуск #807).

  • Аргумент ETA теперь поддерживает даты с заданным часовым поясом (проблема #855).

  • Баннер рабочего отображал настройки автомасштаба в неправильном порядке (проблема #859).

  • Команды расширения теперь загружаются после установки параллелизма, чтобы они не мешали таким вещам, как исправление эвентов.

  • Исправлена ошибка в пуле потоков (выпуск #863)

  • Обработчик отказа задачи перепутал поля в sys.exc_info().

    Исправление внесено Ринатом Шигаповым.

  • Исправлены опечатки и формулировки в документации.

    Исправление предоставлено Полом Макмилланом

  • Новая настройка: CELERY_WORKER_DIRECT

    Если эта функция включена, каждый работник будет потреблять из своей собственной выделенной очереди, которую можно использовать для направления заданий конкретным работникам.

  • Исправлено несколько краевых ошибок в команде добавления потребительского пульта дистанционного управления.

  • migrate: Теперь можно фильтровать и перемещать задания к определенным работникам, если включено CELERY_WORKER_DIRECT.

    Среди прочих улучшений были добавлены следующие функции:

    • move_direct(filterfun, **opts)

    • move_direct_by_id(task_id, worker_hostname, **opts)

    • move_direct_by_idmap({task_id: worker_hostname, ...}, **opts)

    • move_direct_by_taskmap({task_name: worker_hostname, ...}, **opts)

  • default_connection() теперь принимает аргумент pool, который при установке значения false приводит к созданию нового соединения вместо получения соединения из пула.

  • Новый сигнал: celeryd_after_setup.

  • Загрузчик по умолчанию теперь сохраняет атрибуты в нижнем регистре из модуля конфигурации.

3.0.1

дата выхода:

2012-07-10 06:00 p.m. БСТ

релиз на:

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

  • Теперь зависит от kombu 2.2.5

  • inspect теперь поддерживает аргумент limit:

    myapp.control.inspect(limit=1).ping()
    
  • Beat: теперь работает с дататаймами с учетом часовых поясов.

  • Классы задач, наследующие from celery import Task, ошибочно включали accept_magic_kwargs.

  • Исправлена ошибка в inspect scheduled (выпуск #829).

  • Бит: Теперь сбрасывает расписание для обновления до UTC.

  • Команда celery worker теперь работает с eventlet/gevent.

    Ранее это не приводило к достаточно раннему исправлению среды.

  • Команда celery теперь поддерживает команды расширения с использованием точек входа setuptools.

    Библиотеки могут добавлять дополнительные команды к команде celery, добавляя точку входа, например:

    setup(
        entry_points=[
            'celery.commands': [
                'foo = my.module:Command',
        ],
    ],
    ...)
    

    Затем команда должна поддерживать интерфейс celery.bin.base.Command.

  • contrib.migrate: Новые утилиты для перемещения задач из одной очереди в другую.

  • Событие task-sent теперь содержит поля exchange и << 2 >>>.

  • Исправлена ошибка с установкой на Python 3.

    Исправление внесено Джедом Смитом.

3.0.0 (Chiastic Slide)

дата выхода:

2012-07-07 01:30 p.m. BST

релиз на:

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

См. Что нового в Celery 3.0 (Chiastic Slide).

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