История изменений

Этот документ содержит заметки об изменениях для выпусков с исправлениями ошибок в серии 3.1.x (Cipater), пожалуйста, смотрите Что нового в Celery 3.1 (Cipater) для обзора того, что нового в Celery 3.1.

3.1.26

дата выхода:

2018-23-03 16:00 PM IST

релиз на:

Омер Кац

  • Исправлен сбой, вызванный циклическим переключением задач между рабочими Celery 3 и Celery 4.

3.1.25

дата выхода:

2016-10-10 12:00 PM PDT

релиз на:

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

  • Требования.

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

  • Исправлена проблема с аккордами в группе, появившаяся в версии 3.1.24 (проблема #3504).

3.1.24

дата выхода:

2016-09-30 04:21 PM PDT

релиз на:

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

  • Требования.

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

  • Теперь поддерживается протокол Task protocol 2 из будущего выпуска 4.0.

    Рабочие станции под управлением версии 3.1.24 теперь могут обрабатывать сообщения, отправленные с использованием new task message protocol, которое будет введено в Celery 4.0.

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

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

    Пример при определении задачи:

    @app.task(send_events=False)
    def add(x, y):
        return x + y
    
  • Утилиты: Исправлена совместимость с последними версиями psutil (проблема #3262).

  • Канвас: Chord теперь передает частичные аргументы своим подзадачам.

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

  • App: Аргументы к app, такие как backend, broker и т.д., теперь обрабатываются и передаются дочерним процессам в Windows.

    Исправление внесено Джереми Зафраном.

  • Развертывание: Общие скрипты init теперь поддерживают симлинки в каталогах уровня выполнения (выпуск #3208).

  • Развертывание: Обновлены скрипты CentOS для работы с CentOS 7.

    При участии Джо Санфорда.

  • События: Монитор curses больше не падает, когда результат задачи пуст.

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

  • Worker: repr(worker) при вызове на ранней стадии процесса запуска приводил к аварийному завершению (проблема #2514).

  • Задачи: GroupResult теперь определяет __bool__ и __nonzero__.

    Это исправление проблемы, при которой ResultSet или GroupResult с пустым списком результатов неправильно объединяются методом as_tuple(), если это родительский результат. Это происходит из-за того, что метод as_tuple() выполняет логическую операцию and над ResultSet.

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

  • Рабочий: Исправлены неверные значения в сообщениях журнала, связанных с автомасштабированием.

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

  • Улучшение документации за счет

    • Александр Кирила

    • Майкл Аквилина

    • Микко Экстрём

    • Митчел Хамферис

    • Томас А. Нил

    • Тиаго Морейра Виейра

    • Юрий Сыровецкий

    • @dessant

3.1.23

дата выхода:

2016-03-09 06:00 P.M. PST

релиз на:

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

  • Программы: В последнем выпуске была нарушена поддержка аргумента --hostnmame для celery multi и celery worker --detach (проблема #3103).

  • Результаты: Бэкенд результатов MongoDB мог аварийно завершить работу при запуске, если не был настроен с помощью URL.

3.1.22

дата выхода:

2016-03-07 01:30 P.M. PST

релиз на:

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

  • Программы: При использовании некоторых бэкендов результатов (проблема #3094) рабочий немедленно падал при запуске на backend.as_uri().

  • Программы: celery multi/celery worker --detach создавали посторонний лог-файл, включающий литеральные форматы (например, %I) в имени файла (проблема #3096).

3.1.21

дата выхода:

2016-03-04 11:16 a.m. PST

релиз на:

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

  • Требования.

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

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

  • Префорк пул: Исправляет 100% процессорный цикл на Linux epoll (проблема #1845).

    Также потенциальное исправление для: Проблема #2142, Проблема #2606

  • Пул префорков: Устранена утечка памяти, связанная с выходом процессов (проблема #2927).

  • Рабочий: Исправление сбоя при запуске при попытке цензурирования паролей в URL-адресах бэкенда результатов MongoDB и Cache (Выпуск #3079, Выпуск #3045, Выпуск #3049, Выпуск #3068, Выпуск #3073).

    Исправление внесено Максимом Верже.

  • Задача: Теперь возникает исключение, если значение countdown/expires меньше -2147483648 (проблема #3078).

  • Программы: celery shell --ipython теперь совместимы с более новыми версиями IPython.

  • Программы: Предупреждение DuplicateNodeName, выдаваемое inspect/control, теперь включает список возвращаемых имен узлов.

    Внесено Себастьяном Калиновски.

  • Утилиты: Метод .discard(item) LimitedSet не удалял элемент (проблема #3087).

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

  • Рабочий: Форматирование имен узлов теперь выдает менее запутанное сообщение об ошибке при несовпадении форматных ключей (проблема №3016).

  • Результаты: RPC/AMQP бэкенды: Исправлена десериализация исключений JSON (проблема #2518).

    Исправление внесено Аллардом Хёве.

  • Префорк пула: Сообщение об ошибке process inqueue damaged теперь включает исходное поднятое исключение.

  • Документация: Включает в себя улучшения по:

    • Джефф Уидман.

3.1.20

дата выхода:

2016-01-22 06:50 p.m. UTC

релиз на:

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

  • Требования.

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

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

      Включает бинарные колеса для Microsoft Windows x86 и x86_64!

  • Задача: Письма с ошибками теперь по умолчанию используют набор символов utf-8 (проблема #2737).

  • Задача: Retry теперь пересылает оригинальные заголовки сообщений (проблема №3017).

  • Рабочий: Bootsteps теперь может подключаться к on_node_join/leave/lost.

    Смотрите пример Атрибуты.

  • События: Исправлена обработка временных зон DST (проблема #2983).

  • Результаты: Бэкенд Redis перестал соблюдать определенные настройки.

    Внесено Джереми Ллевеллином.

  • Результаты: Бэкенд базы данных теперь правильно поддерживает исключения JSON (проблема #2441).

  • Результаты: Redis new_join некорректно вызывал errbacks задачи при ошибке хорды (проблема #2796).

  • Результаты: Восстанавливает совместимость Redis с Python redis < 2.10.0 (проблема #2903).

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

  • Задачи: Использование значений имени очереди в CELERY_ROUTES теперь снова работает (проблема #2987).

  • Общие: Пароль бэкенда результатов теперь санируется при выводе отчета (Выпуск #2812, Выпуск #2004).

  • Конфигурация: Теперь выдает полезное сообщение об ошибке, когда конфигурация бэкенда результата указывает на модуль, а не на класс (проблема #2945).

  • Результаты: Исключения, отправленные JSON-сериализованными рабочими, теперь правильно обрабатываются рабочими, сконфигурированными в pickle.

  • Программы: celery control autoscale теперь работает (проблема #2950).

  • Программы: celery beat --detached теперь запускается после обратного вызова fork.

  • Общие: Исправление реализации кэша LRU на Python 3.5 (проблема #2897).

    При участии Денниса Бракейна.

    В Python 3.5 функция OrderedDict не допускает мутации во время итерации. Это ломает «update», если он вызывается с диктой, превышающей максимальный размер.

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

  • Init-scripts: Инит-скрипт beat теперь правильно сообщает, что сервис не работает, если не найден файл pid.

    Эрик Зароуни

  • Примечание: Добавлена очистка поврежденных файлов планировщика для некоторых ошибок бэкенда хранилища (проблема #2985).

    Исправление внесено Александром Кузнецовым.

  • Примечание: Теперь синхронизирует расписание, даже если оно пустое.

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

  • Супервизор: Установите более высокий приоритет процесса в supervisord

    пример.

    Внесен Джорджем Тантирасом.

  • Документация: Включает в себя улучшения по:

    @Bryson Caleb Mingle Christopher Martin Dieter Adriaenssens Jason Veatch Jeremy Cline Juan Rossi Kevin Harvey Kevin McCarthy Kirill Pavlov Marco Buttu @Mayflower Mher Movsisyan Michael Floering @michael-k Nathaniel Varona Rudy Attias Ryan Luckie Steven Parker @squfrans Tadej Janež TakesxiSximada Tom S.

3.1.19

дата выхода:

2015-10-26 01:00 p.m. UTC

релиз на:

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

  • Требования.

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

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

  • Результаты: Исправлена проблема разбора URL бэкенда результатов MongoDB (проблема celery/kombu#375).

  • Рабочий: Запрос задания теперь правильно устанавливает priority в delivery_info.

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

  • Беда: PyPy shelve может поднять KeyError при установке ключей (проблема #2862).

  • Программы: celery beat --deatched теперь работает на PyPy.

    Исправление внесено Кшиштофом Буйневичем.

  • Результаты: Бэкенд результатов Redis теперь обеспечивает очистку всех конвейеров.

    При участии Джастина Патрина.

  • Результаты: Бэкенд результатов Redis теперь позволяет устанавливать тайм-аут в части запроса URL бэкенда результатов.

    Например, CELERY_RESULT_BACKEND = 'redis://?timeout=10'

    При участии Джастина Патрина.

  • Результаты: result.get теперь правильно обрабатывает сбои, когда значение исключения установлено в None (проблема #2560).

  • Префорк пул: Исправлена ошибка атрибута proc.dead.

  • Worker: Исправлено зависание рабочего при отключении сплетен/сердцебиения (проблема #1847).

    Исправление внесено Аароном Веббером и Брайаном Хелмигом.

  • Результаты: Бэкенд результатов MongoDB теперь поддерживает pymongo 3.x (выпуск #2744).

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

  • Результаты: Бэкенды RPC/AMQP неправильно десериализовывали исключения (проблема #2691).

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

  • Программы: Исправлена проблема с celery amqp в basic_publish (Выпуск #2013).

  • Рабочий: Встроенный бит теперь правильно устанавливает приложение для потока/процесса (проблема #2594).

  • Документация: Исправлено множество улучшений и опечаток.

    Вклад:

    Карлос Гарсия-Дубус Д. Ю @jerry Жослин Делаланд Джош Купершмидт Хуан Росси @kanemra Пол Пирс Павел Савченко Шон Ванг Сынха Ким Чжаоронг Ма

3.1.18

дата выхода:

2015-04-22 05:30 p.m. UTC

релиз на:

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

  • Требования.

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

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

  • Django: Теперь поддерживает Django 1.8 (выпуск #2536).

    Исправление предоставлено Бенсе Тамасом и Микаэлем Пенхардом.

  • Результаты: Бэкенд результатов MongoDB теперь совместим с pymongo 3.0.

    Исправление внесено Фатихом Суку.

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

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

  • Команды: Опции предварительной загрузки теперь поддерживают синтаксис --arg value.

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

  • Компат: Из-за опечатки celery.log.setup_logging_subsystem не был определен.

    Исправление предоставлено Gunnlaugur Thor Briem.

  • init-scripts: Битый общий init-скрипт теперь использует /bin/sh вместо bash (проблема #2496).

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

  • Django: Исправлено TypeError, иногда возникающее в логах при проверке моделей.

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

  • Команды: Worker теперь поддерживает новый аргумент --executable, который может быть использован с celery worker --detach.

    Принесено Бертом Вандербауведом.

  • Канвас: Исправлен сбой в задаче отката разблокировки аккордов (проблема #2404).

  • Рабочий: Исправлен редкий сбой, возникающий при включенном --autoscale (проблема #2411).

  • Django: Правильно утилизируйте рабочие соединения с базами данных Django, когда включен параметр Django CONN_MAX_AGE (проблема #2453).

    Исправление внесено Люком Берденом.

3.1.17

дата выхода:

2014-11-19 03:30 p.m. UTC

релиз на:

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

Не включайте параметр CELERYD_FORCE_EXECV!

Пожалуйста, пересмотрите свою конфигурацию и отключите эту опцию, если вы используете транспорт RabbitMQ или Redis.

Если оставить эту опцию включенной после версии 3.1, пул prefork, основанный на асинхронном режиме, будет отключен, что может легко привести к нестабильности.

  • Требования.

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

      Включает новый транспорт Qpid, который появится в Celery 3.2, и перенесен для поддержки тех, кому все еще требуется совместимость с Python 2.6.

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

    • celery[librabbitmq] теперь зависит от librabbitmq 1.6.1.

  • Задача: Время выполнения задач ETA/countdown сбивалось после того, как пример реализации LocalTimezone в документации по Python перестал работать в Python 3.4. (Проблема #2306).

  • Задача: Поднятие Ignore больше не отправляет событие task-failed (проблема #2365).

  • Бэкэнд результатов Redis: Исправлены несвязанные локальные ошибки.

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

  • Задача: Callbacks вызывался неправильно, если link представлял собой список сигнатур (проблема #2350).

  • Canvas: цепочка и группа теперь обрабатывают сериализованные подписи json (проблема #2076).

  • Результаты: .join_native() случайно рассматривал состояние STARTED как состояние готовности (проблема #2326).

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

  • Canvas: Атрибут chord_size теперь установлен для всех примитивов canvas, обеспечивая работу большего количества комбинаций с оптимизацией new_join для Redis (выпуск #2339).

  • Задача: Исправлена проблема с тем, что приложение не во всех случаях правильно распространялось на trace_task.

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

  • Рабочий: Истечение срока действия сообщения о задаче теперь связано с временной зоной.

    Исправление внесено Альбертом Вангом.

  • Бэкэнд результатов Кассандры: Исправлены проблемы при использовании детального режима.

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

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

  • Mongodb Result backend: При пикировке экземпляра бэкенда теперь будет отображаться исходный URL (проблема #2347).

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

  • Задача: Информация об исключении не была правильно установлена для задач, поднимающих Reject (проблема #2043).

  • Рабочий: Дубликаты теперь удаляются при загрузке набора отозванных заданий из базы данных состояния работника (проблема #2336).

  • celery.contrib.rdb: Исправлены проблемы с rdb.set_trace вызовом остановки из неправильного кадра.

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

  • Канвас: chain и chord теперь могут быть неизменяемыми.

  • Canvas: chord.apply_async теперь будет сохранять частичные args, заданные в self.args (выпуск #2299).

  • Результаты: Небольшой рефакторинг, чтобы результаты декодировались одинаково во всех бэкендах результатов.

  • Запись в журнал: Формат processName был представлен в Python 2.6.2, поэтому для совместимости этот формат теперь исключен при использовании более ранних версий (выпуск #1644).

3.1.16

дата выхода:

2014-10-03 06:00 p.m. UTC

релиз на:

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

  • Рабочий: 3.1.15 нарушено поведение -Ofair (проблема #2286).

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

  • Канвас: celery.signature теперь правильно пересылает аргумент app во всех случаях.

  • Задача: .retry() некорректно поднимала исключение при вызове без текущего исключения.

    Исправление внесено Андреа Раббаглиетти.

  • Рабочий: Команда удаленного управления enable_events по ошибке отключила события, связанные с рабочим (проблема #2272).

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

  • Django: Добавляет поддержку имен классов Django 1.7 в INSTALLED_APPS при использовании app.autodiscover_tasks() (проблема #2248).

  • Sphinx: celery.contrib.sphinx теперь использует getfullargspec на Python 3 (проблема #2302).

  • Redis/Cache Backends: Теперь аккорды будут выполняться не более одного раза, если одна или несколько задач в аккорде по какой-то причине выполняются несколько раз.

3.1.15

дата выхода:

2014-09-14 11:00 p.m. UTC

релиз на:

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

  • Django: Теперь проверяется, что django.setup() вызывается перед импортом любых модулей задач (совместимость с Django 1.7, выпуск #2227)

  • Результаты: result.get() вел себя неправильно, вызывая backend.get_task_meta в вызове finally, что приводило к неправильной очистке очередей бэкенда результатов AMQP (проблема #2245).

3.1.14

дата выхода:

2014-09-08 03:00 p.m. UTC

релиз на:

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

  • Требования.

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

  • Init-scripts: Общая рабочая команда init-scripts status теперь получает точный список pid-файлов (выпуск #1942).

  • Init-scripts: Скрипт общего удара теперь реализует status.

    командование.

    Внесено Джоном Уитлоком.

  • Команды: Multi теперь записывает информационный вывод в stdout вместо stderr.

  • Рабочий: Теперь игнорирует ошибку not implemented для pool.restart (проблема #2153).

  • Задача: Retry больше не вызывает исключение retry при выполнении в режиме eager (проблема #2164).

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

  • Django: Совместимость с Django 1.7 на Windows (выпуск #2126).

  • Программы: Аргумент --umask теперь может быть указан как в восьмеричной (если начинается с 0), так и в десятичной системе счисления.

3.1.13

Исправления в системе безопасности

  • [Безопасность: CELERYSA-0002] Небезопасный стандартный umask.

    Встроенная утилита, используемая для демонизации рабочей службы Celery, по умолчанию устанавливает небезопасный umask (umask 0).

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

    Особая благодарность компании Red Hat за первоначальное обнаружение и сообщение об этой проблеме!

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

Новости

  • Требования.

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

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

  • App: Аргумент backend теперь также устанавливает параметр CELERY_RESULT_BACKEND.

  • Задача: signature_from_request теперь распространяет reply_to, чтобы бэкенд RPC работал с повторными заданиями (проблема #2113).

  • Задача: retry больше не будет пытаться повторно поставить задачу в очередь, если отправка повторного сообщения не удалась.

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

  • Бит: Учитывает стандартный дрейф в 1 мс, всегда просыпаясь на 0,010 с раньше.

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

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

    Вклад внесли Юваль Гринфилд, Лукас Виман, @nicholsonjf.

  • Worker: Удален устаревший оператор assert, который мог привести к маскировке ошибок (проблема #2086).

3.1.12

дата выхода:

2014-06-09 10:12 p.m. UTC

релиз на:

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

  • Требования.

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

  • App: Соединения не закрывались после форка из-за ошибки в обработчике после форка (проблема #2055).

    Это может проявляться в виде ошибок кадрирования при использовании RabbitMQ. (Unexpected frame).

  • Django: django.setup() вызывался слишком поздно при использовании Django 1.7 (проблема #1802).

  • Django: Исправлены проблемы с временными зонами событий при использовании Django (Substantial drift).

    Celery не учел, что Django модифицирует атрибуты time.timeone и друзей.

  • Канвас: Signature.link теперь работает, когда параметр ссылки является скалярным значением (выпуск #2019).

  • Пул префорков: Исправлены условия гонки при удалении файловых дескрипторов из цикла событий.

    Исправление внесено Роджером Ху.

  • Пул префорков: Улучшенное решение для разделения задач между дочерними процессами.

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

  • Worker: Теперь игнорирует неизвестные типы событий, вместо того чтобы аварийно завершать работу.

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

  • Программы: celery worker --detach больше не закрывает открытые дескрипторы файлов, когда используется C_FAKEFORK, чтобы можно было увидеть вывод рабочих файлов.

  • Программы: Рабочим каталогом по умолчанию для celery worker --detach теперь является текущий рабочий каталог, а не /.

  • Canvas: signature(s, app=app) не обновлял сериализованные сигнатуры до их исходного класса (subtask_type), когда использовался аргумент ключевого слова app.

  • Контроль: Предупреждение duplicate nodename, выдаваемое командами управления, теперь показывает дублирующее имя узла.

  • Задачи: Теперь можно вызывать ResultSet.get() на наборе результатов без членов.

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

  • App: Исправлена странная проблема с обработкой обратных связей для app.connection_or_acquire.

  • Программы: Команда celery multi stopwait теперь документирована в использовании.

  • Другое: Исправлена проблема с очисткой PromiseProxy при возникновении ошибки при попытке оценить обещание.

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

    Исправление внесено Люком Помфри.

  • Другое: Команда inspect conf не очень хорошо обрабатывала нестроковые ключи.

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

  • Программы: Исправлена проблема с обработкой аргументов в celery worker --detach.

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

  • Программы: celery worker --detach не пересылал опцию рабочего каталога (выпуск #2003).

  • Программы: celery inspect registered больше не включает список встроенных задач.

  • Рабочий: Атрибут requires для шагов загрузки обрабатывался некорректно (проблема #2002).

  • Эвентлет: Пул эвентлетов теперь поддерживает команды удаленного управления pool_grow и << 1 >>>.

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

  • Эвентлет: Пул эвентлетов теперь реализует статистику для :program:celery inspect stats.

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

  • Документация: Уточнено поведение Task.rate_limit.

    При участии Йонаса Хаага.

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

  • Документация: В примерах документации по безопасности использовался устаревший импорт.

    Исправление внесено Яном Дисом.

  • Init-scripts: В init-скриптах CentOS не было кавычек CELERY_CHDIR.

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

3.1.11

дата выхода:

2014-04-16 11:00 p.m. UTC

релиз на:

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

  • Сейчас совместим с RabbitMQ 3.3.0

    При использовании RabbitMQ 3.3 необходимо запустить Celery 3.1.11 или более позднюю версию, а если вы используете модуль librabbitmq, вам также необходимо обновить версию до librabbitmq 1.5.0:

    $ pip install -U librabbitmq
    
  • Требования:

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

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

    • Пакет celery[librabbitmq] теперь зависит от librabbitmq 1.5.0.

  • Задачи: Настройка CELERY_DEFAULT_DELIVERY_MODE игнорировалась (проблема #1953).

  • Worker: Новый celery worker --heartbeat-interval может быть использован для изменения времени (в секундах) между отправкой сердцебиений событий.

    При участии Мэтью Даггана и Крейга Нортвея.

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

  • MongoDB: Конфигурация SSL с транспортом, не относящимся к MongoDB, нарушает работу бэкенда результатов MongoDB (проблема #1973).

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

  • Запись в журнал: Форматировщик цветов случайно изменил record.msg (проблема #1939).

  • Результаты: Исправлена проблема с многократным сохранением маршрутов задач, что приводило к зависанию result.collect() (Выпуск #1936, Выпуск #1943).

  • Результаты: ResultSet теперь реализует атрибут .backend для совместимости с AsyncResult.

  • Результаты: .forget() теперь также очищает локальный кэш.

  • Результаты: Исправлена проблема с многократным вызовом result._set_cache (проблема #1940).

  • Результаты: join_native заполняется кэш результатов, даже если он отключен.

  • Результаты: Сериализатор результатов YAML теперь может обрабатывать исключения при хранении.

  • Рабочий: Больше не отправляет сообщения об ошибках задания для ожидаемых ошибок (в @task(throws=(..., ))).

  • Канвас: Исправлена проблема с десериализацией исключений при использовании сериализатора JSON (выпуск #1987).

  • Eventlet: Исправление сбоя, когда celery.contrib.batches пытался отменить несуществующий таймер (проблема #1984).

  • Теперь можно импортировать celery.version_info_t, и celery.five (выпуск #1968).

3.1.10

дата выхода:

2014-03-22 09:40 p.m. UTC

релиз на:

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

  • Требования:

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

  • Результаты:

    Улучшение надежности бэкенда базы данных SQLAlchemy. Ранее соединение из MainProcess некорректно передавалось рабочим. (Проблема #1786)

  • Redis: Важное замечание о событиях (выпуск #1882).

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

    BROKER_TRANSPORT_OPTIONS = {'fanout_patterns': True}
    

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

    См. Оговорки.

    Это будет использоваться по умолчанию в Celery 3.2.

  • Результаты: Объект app.AsyncResult теперь хранит локальный кэш конечного состояния задачи.

    Это означает, что глобальный кэш результатов наконец-то можно отключить, и вы можете сделать это, установив CELERY_MAX_CACHED_RESULTS в -1. Время жизни кэша будет привязано к времени жизни объекта результата, что станет поведением по умолчанию в Celery 3.2.

  • События: Предупреждающее сообщение «Существенный дрейф» теперь регистрируется только один раз для каждого имени узла (проблема #1802).

  • Worker: Возможность использовать один файл журнала на дочерний процесс при использовании пула prefork.

    Это можно включить, используя новые спецификаторы формата %i и %I для имени файла журнала. См. Индекс процесса пула Prefork.

  • Redis: Новая экспериментальная реализация соединения аккордов.

    Это оптимизация для аккордов при использовании бэкенда результатов Redis, где операция объединения теперь выполняется значительно быстрее и использует меньше ресурсов, чем предыдущая стратегия.

    Новый параметр может быть установлен в URL бэкенда результата:

    CELERY_RESULT_BACKEND = 'redis://localhost?new_join=1'
    

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

  • Мульти: При -opt:index (например, -c:1) индекс теперь всегда ссылается на позицию узла в списке аргументов.

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

    celery multi start A B C D -c:1 4 -c:2-4 8
    

    В данном примере 1 относится к узлу A (так как это первый узел в списке).

  • Сигналы: Аргумент отправителя Signal.connect теперь может быть прокси-объектом, что означает, что его можно использовать с декоратором задач (проблема #1873).

  • Задача: Регрессия привела к тому, что аргумент queue для Task.retry игнорировался (проблема #1892).

  • App: Исправлено сообщение об ошибке для config_from_envvar().

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

  • Канвас: Аккорды теперь могут содержать группу других аккордов (выпуск #1921).

  • Канвас: Аккорды теперь можно объединять при использовании бэкенда результатов amqp (аккорд, в котором обратный вызов также является аккордом).

  • Canvas: Вызов result.get() для задачи цепочки теперь будет завершен, даже если одна из задач в цепочке имеет значение ignore_result=True (проблема #1905).

  • Канвас: Worker теперь также регистрирует ошибки аккордов.

  • Канвас: Задача хорды, вызывающая исключение, теперь приводит к тому, что все ошибки (<< 0 >>>) обратного вызова хорды также будут вызваны.

  • Результаты: Улучшения надежности бэкенда базы данных SQLAlchemy (проблема #1786).

    Ранее соединение из MainProcess некорректно наследовалось дочерними процессами.

    Исправление внесено Ionel Cristian Mărieș.

  • Задача: Обратные вызовы и возвраты задач теперь вызываются с помощью примитива group.

  • Задача: Task.apply теперь правильно устанавливает request.headers (проблема #1874).

  • Worker: Исправлено UnicodeEncodeError, возникающее, когда рабочий запускается supervisor.

    Исправление внесено фанатом Codeb.

  • Предупреждение: Больше не пытается обновить только что созданный файл базы данных (проблема #1923).

  • Примечание: Новая настройка :setting:CELERYBEAT_SYNC_EVERY может быть использована для управления синхронизацией файлов путем указания количества заданий для отправки между каждой синхронизацией.

    При участии Криса Кларка.

  • Команды: celery inspect memdump больше не аварийно завершается, если модуль psutil не установлен (проблема #1914).

  • Worker: Команды удаленного управления теперь всегда принимают сериализованные json-сообщения (проблема #1870).

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

3.1.9

дата выхода:

2014-02-10 06:43 p.m. UTC

релиз на:

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

  • Требования:

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

  • Пул префорков: Улучшена обработка завершающихся дочерних процессов.

    Исправление внесено Ionel Cristian Mărieș.

  • Пул префорков: Теперь при очистке процесса все файловые дескрипторы удаляются из концентратора.

    Исправление внесено Ionel Cristian Mărieș.

  • Новое расширение Sphinx: для автодокументирования задач: celery.contrib.spinx (Выпуск #1833).

  • Django: Теперь работает с Django 1.7a1.

  • Задача: Task.backend теперь является свойством, которое пересылается в app.backend, если для задачи не был указан пользовательский бэкенд (проблема #1821).

  • Общие init-скрипты: Исправлена ошибка в команде stop.

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

  • Общие init-скрипты: Исправлена совместимость с GNU stat.

    Исправление внесено Полом Килго.

  • Общие init-скрипты: Исправлена совместимость с минимальной оболочкой dash (проблема #1815).

  • Команды: Команда celery amqp basic.publish работала некорректно.

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

  • Команды: Больше не выдает сообщение об ошибке, если pid-файл существует, а процесс еще жив (проблема #1855).

  • Команды: Улучшено сообщение об ошибке при отсутствии аргументов в опциях предварительной загрузки (проблема #1860).

  • Команды: celery -h не работала из-за ошибки в анализаторе аргументов (проблема #1849).

  • Worker: Улучшено сообщение об ошибке при ошибках декодирования сообщений.

  • Время: Теперь правильно разбирает спецификатор часового пояса Z в строках даты ISO 8601.

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

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

  • Beat: Исправлена проблема с зависанием ритма после первой итерации расписания (проблема #1822).

    Исправление внесено Роджером Ху.

  • Сигналы: Аргумент заголовка в before_task_publish теперь всегда является экземпляром словаря, чтобы обработчики сигналов могли добавлять заголовки.

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

3.1.8

дата выхода:

2014-01-17 10:45 pm. UTC

релиз на:

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

  • Требования:

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

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

  • Worker: Цикл событий не был правильно реинициализирован при перезапуске потребителя, что заставляло рабочий продолжать работу с закрытым экземпляром epoll на Linux, что приводило к аварийному завершению работы.

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

    В результате это заставит рабочий регистрировать события «heartbeat missed», даже если удаленный узел своевременно отправлял heartbeat.

  • Результаты: Сериализатор pickle больше не преобразует групповые результаты в кортежи, а сохраняет исходный тип (проблема #1750).

  • Результаты: ResultSet.iterate теперь ожидает депривации.

    Метод будет устаревшим в версии 3.2 и удален в версии 3.3.

    Вместо этого используйте result.get(callback=) (или result.iter_native(), где это возможно).

  • Worker|eventlet/gevent: Регрессия привела к тому, что Control-c был неэффективен при выключении.

  • Redis result backend: Теперь используется конвейер для хранения изменений состояния для повышения производительности.

    При участии Пепийна де Воса.

  • Redis result backend: Теперь при разрыве соединения будет повторно сохранять результат.

  • Worker|gossip: Исправлена ошибка атрибута, возникающая при выходе другого узла.

    Исправление внесено Броди Рао.

  • Общие init-скрипты: Теперь при запуске выполняется проверка, что все конфигурационные скрипты принадлежат root и что они не доступны для записи в мире/группе.

    Конфигурация init-script является сценарием оболочки, выполняемым root, поэтому это превентивная мера, чтобы гарантировать, что пользователи не оставят этот файл уязвимым для изменений со стороны непривилегированных пользователей.

    Примечание

    Обратите внимание, что обновление Celery не приведет к обновлению init-скриптов, вместо этого вам нужно вручную скопировать улучшенные версии из исходного дистрибутива: https://github.com/celery/celery/tree/3.1/extra/generic-init.d.

  • Команды: Команда celery purge теперь предупреждает о том, что операция удалит все задачи, и запрашивает у пользователя подтверждение.

    Был добавлен новый параметр -f, который можно использовать для отключения интерактивного режима.

  • Задача: .retry() не поднимал значение, указанное в аргументе exc, при вызове вне контекста ошибки (проблема #1755).

  • Команды: Команда celery multi не передавала конфигурацию командной строки целевым рабочим.

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

    Пример использования конфигурации командной строки для установки сердцебиения брокера с celery multi:

    $ celery multi start 1 -c3 -- broker.heartbeat=30
    

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

  • Canvas: chain.apply_async() теперь правильно пересылает параметры выполнения.

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

  • Redis result backend: Теперь принимает аргумент connection_pool, который может быть использован для изменения класса/конструктора пула соединений.

  • Worker: Теперь усекаются очень длинные аргументы и аргументы с ключевыми словами, регистрируемые пулом на уровне отладки.

  • Рабочий: Теперь рабочий закрывает все открытые файлы при SIGHUP (регрессия) (Выпуск #1768).

    Исправление внесено Броди Рао

  • Worker: больше не будет принимать команды удаленного управления, пока фаза запуска рабочего не завершена (проблема #1741).

  • Команды: Вывод утилиты дампа событий (celery events -d) теперь можно передавать в другие команды.

  • Документация: Инструкции по установке RabbitMQ для macOS были обновлены для использования современных практик Homebrew.

    Внесено Джоном Ченом.

  • Команды: Утилита celery inspect conf теперь работает.

  • Команды: Аргумент --no-color соблюдался не всеми командами (проблема #1799).

  • App: Исправлена редкая ошибка с autodiscover_tasks() (Выпуск #1797).

  • Распространение: Документация sphinx теперь всегда будет добавлять родительский каталог в path, чтобы текущий исходный код Celery использовался в качестве основы для документации API (Выпуск #1782).

  • Документация: supervisor примеры содержали лишнее „-“ в примере аргумента --logfile.

    Исправление внесено Мохаммадом Альмиром.

3.1.7

дата выхода:

2013-12-17 06:00 p.m. UTC

релиз на:

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

Важные замечания

Улучшения безопасности инит-скрипта

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

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

Вы должны обновить init-скрипты вручную из этого каталога: https://github.com/celery/celery/tree/3.1/extra/generic-init.d.

Бэкэнд результатов AMQP

В релизе 3.1 бэкенд amqp был случайно настроен на непостоянство по умолчанию.

Обновление с версии 3.0 приводит к ошибке «не эквивалентно» при попытке установить или получить результаты для задачи. Это происходит до тех пор, пока вы вручную не установите настройки персистентности:

CELERY_RESULT_PERSISTENT = True

Эта версия восстанавливает предыдущее значение, поэтому если вы уже принудительно обновили систему, удалив существующий обмен, вы должны либо сохранить конфигурацию, установив CELERY_RESULT_PERSISTENT = False, либо снова удалить обмен celeryresults.

Синхронные подзадачи

Задачи, ожидающие результата подзадачи, теперь будут выдавать предупреждение RuntimeWarning при использовании пула prefork, а в версии 3.2 это приведет к возникновению исключения.

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

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

from celery.result import allow_join_result

@app.task
def misbehaving():
    result = other_task.delay()
    with allow_join_result():
        result.get()

Обратите внимание, что если вы ожидаете результат подзадачи в любой форме при использовании пула prefork, вы также должны отключить поведение предварительной выборки пула с помощью worker -Ofair option.

Исправления

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

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

  • События: Исправлена совместимость с нестандартными библиотеками json, которые отправляют float как decimal.Decimal (проблема #1731).

  • События: Объекты State worker теперь всегда определяют атрибуты: active, processed, loadavg, sw_ident, sw_ver и sw_sys.

  • Рабочий: Теперь ведет подсчет общего количества обработанных заданий, а не только по типу (all_active_count).

  • Init-скрипты: Исправлена проблема с чтением конфигурационного файла, когда init-скрипт связан симлинком с уровнем выполнения (например, S02celeryd). (Проблема #1740).

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

    CELERYD_NODES="X1 X2 Y1 Y2"
    CELERYD_OPTS="-A:X1 x -A:X2 x -A:Y1 y -A:Y2 y"
    
  • Задача разблокировки аккорда теперь всегда вызывается после заголовка аккорда (проблема #1700).

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

  • Команда Celery: Исправлена проблема с аргументами для некоторых команд управления.

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

  • Исправлена ошибка в utcoffset, при которой смещение при DST было совершенно неправильным (проблема #1743).

  • Worker: Ошибки, возникающие при попытке сериализации результата задачи, теперь приводят к пометке задачи неудачей и ошибке kombu.exceptions.EncodingError.

    Исправление внесено Ionel Cristian Mărieș.

  • Рабочий с аргументом -B не закрыл должным образом экземпляр такта.

  • Рабочий: Форматы %n и %h теперь также поддерживаются аргументами --logfile, --pidfile и --statedb.

    Пример:

    $ celery -A proj worker -n foo@%h --logfile=%n.log --statedb=%n.db
    
  • Бэкенды результатов Redis/Cache: Теперь будет происходить таймаут, если ключи выселяются при попытке присоединиться к аккорду.

  • Задача fallback unlock chord теперь поднимает Retry, чтобы повторная попытка даже правильно регистрировалась рабочим.

  • Multi: Больше не будет применять исправления Eventlet/gevent monkey (проблема #1717).

  • Бэкенд результатов Redis: Теперь поддерживает сокеты UNIX.

    Как и транспорт брокера Redis, бэкенд результатов теперь также поддерживает использование URL redis+socket:///tmp/redis.sock.

    При участии Альсидеса Виамонтеса Эскивеля.

  • События: События, отправленные клиентами, ошибочно принимались за события, связанные с работниками (проблема #1714).

    Для events.State задачи теперь имеют атрибут Task.client, который устанавливается при получении события task-sent.

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

  • Пул префорков: Метод, используемый для поиска завершенных процессов, был несовершенен в том, что он не учитывал также отсутствующие объекты popen.

  • Canvas: group и chord теперь работают с подписями анонов, если объект группы/аккорда связан с экземпляром приложения (проблема #1744).

    Вы можете передать приложение, используя group(..., app=app).

3.1.6

дата выхода:

2013-12-02 06:00 p.m. UTC

релиз на:

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

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

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

  • Исправлена проблема, при которой Mingle приводил к зависанию рабочего при запуске (выпуск #1686).

  • Бить: Попытка сбросить привилегии дважды (проблема #1708).

  • Windows: Исправлена ошибка с недоступностью geteuid (проблема #1676).

  • Задачи теперь могут предоставлять список ожидаемых классов ошибок (выпуск #1682).

    Список должен включать только те ошибки, которые, как ожидается, будут возникать в ходе нормальной работы задачи:

    @task(throws=(KeyError, HttpNotFound))
    

    Что происходит при возникновении исключения, зависит от типа ошибки:

    • Ожидаемые ошибки (включены в Task.throws)

      Будет занесена в журнал с серьезностью INFO, а трассировка исключена.

    • Неожиданные ошибки

      Будет зарегистрировано с серьезностью ERROR, с включением трассировки.

  • Бэкенд результатов кэширования теперь совместим с Python 3 (проблема #1697).

  • CentOS init-script: Теперь совместим с симлинками init в стиле SysV.

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

  • События: Исправлена проблема, когда имя задачи не определено (проблема #1710).

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

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

    Исправление внесено Маркусом Ульманом.

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

  • Задача: Исправлена проблема с ETA и часовыми поясами.

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

  • Django: Worker теперь выполняет валидацию модели (проблема #1681).

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

  • Задача: Новый метод Task.send_event можно использовать для отправки пользовательских событий в Flower и другие мониторы.

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

  • События от клиентов теперь используют новый формат имени узла (gen<pid>@<hostname>).

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

    Исправление внесено Ником Джонсоном.

  • Исправлена совместимость с Python 2.6 (проблема #1679).

3.1.5

дата выхода:

2013-11-21 06:20 p.m. UTC

релиз на:

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

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

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

  • Приложение: config_from_object теперь ленивый (проблема #1665).

  • App: autodiscover_tasks теперь ленивый.

    Пользователи Django теперь должны обернуть доступ к объекту settings в лямбду:

    app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
    

    это гарантирует, что объект настроек не будет подготовлен преждевременно.

  • Исправлена регрессия для аргумента --app, с которой столкнулись некоторые пользователи (проблема #1653).

  • Worker: Теперь уважает аргументы --uid и --gid, даже если --detach не включен.

  • Бить: Теперь учитывает аргументы --uid и << 1 >>>, даже если << 2 >>> не включен.

  • Python 3: Исправлена неупорядоченная ошибка, возникающая при включенном аргументе worker -B.

  • celery.VERSION теперь является именованным кортежем.

  • maybe_signature(list) теперь применяется рекурсивно (проблема #1645).

  • celery shell команда: Исправлено предупреждение об устаревании IPython.frontend.

  • Приложение по умолчанию больше не включает встроенные исправления.

    Это исправляет ошибку, когда celery multi пытался загрузить модуль настроек Django до входа в целевой рабочий каталог.

  • Учебник по демонизации Django был изменен.

    Пользователям больше не нужно явно экспортировать DJANGO_SETTINGS_MODULE в /etc/default/celeryd при использовании нового макета проекта.

  • Бэкенд результатов Redis: значение срока действия теперь может быть равно 0 (проблема #1661).

  • Настройки цензуры теперь учитывают нестрочные ключи (проблема #1663).

  • Приложение: Новая опция autofinalize.

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

    Пример:

    app = Celery(autofinalize=False)
    
    # raises RuntimeError
    tasks = app.tasks
    
    @app.task
    def add(x, y):
        return x + y
    
    # raises RuntimeError
    add.delay(2, 2)
    
    app.finalize()
    # no longer raises:
    tasks = app.tasks
    add.delay(2, 2)
    
  • Рабочий не отправлял события мониторинга во время отключения.

  • Рабочий: Mingle and gossip теперь автоматически отключается при использовании с неподдерживаемым транспортом (проблема #1664).

  • Команда celery: Опции предзагрузки теперь поддерживают редкий формат --opt value (выпуск #1668).

  • celery команда: Случайно удалены опции, появляющиеся перед подкомандой, теперь они перемещены в конец.

  • Теперь Worker правильно реагирует на команды inspect stats, даже если они получены до завершения запуска (проблема #1659).

  • task_postrun теперь посылается внутри блока finally, чтобы убедиться, что сигнал посылается всегда.

  • Бит: Исправлена синтаксическая ошибка при форматировании строк.

    Внесено @nadad.

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

    Исправления внесены Loic Bistuer, @sunfinite.

  • Вложенные цепочки теперь работают правильно при построении с использованием типа chain вместо оператора | (проблема #1656).

3.1.4

дата выхода:

2013-11-15 11:40 pm. UTC

релиз на:

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

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

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

  • Рабочий случайно установил тайм-аут сокета по умолчанию в 5 секунд.

  • Django: Fix-up теперь устанавливает приложение по умолчанию так, что потоки будут использовать один и тот же экземпляр приложения (например, для manage.py runserver).

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

  • Вызов .apply_async на пустой цепочке теперь снова работает (проблема #1650).

  • Команда celery multi show теперь генерирует те же аргументы, что и команда start.

  • Аргумент --app может в конечном итоге использовать объект модуля вместо экземпляра приложения (с последующим сбоем).

  • Исправлена проблема синтаксической ошибки в init-скрипте ритма.

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

  • Тесты теперь проходят на PyPy 2.1 и 2.2.

3.1.3

дата выхода:

2013-11-13 00:55 a.m. UTC

релиз на:

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

  • Исправлена проблема совместимости с Python 2.7.0 - 2.7.5 (выпуск #1637)

    unpack_from начал поддерживать аргументы memoryview в Python 2.7.6.

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

  • Украшенные задачи теперь сохраняют свои docstring (проблема #1636)

3.1.2

дата выхода:

2013-11-12 08:00 p.m. UTC

релиз на:

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

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

  • Больше не требуется установка расширения Billiard C.

  • Рабочий молча игнорировал ошибки задания.

  • Django: Исправлена ошибка ImproperlyConfigured, возникающая, когда не указан бэкенд базы данных.

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

  • Пул префорков: Теперь используется _multiprocessing.read с memoryview, если доступно.

  • close_open_fds теперь использует os.closerange, если доступно.

  • get_fdmax теперь принимает значение из sysconfig, если это возможно.

3.1.1

дата выхода:

2013-11-11 06:30 p.m. UTC

релиз на:

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

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

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

  • Windows: Случайно выводилось предупреждение о том, что расширение billiard C не установлено (проблема #1630).

  • Django: Учебник обновлен решением, которое устанавливает значение по умолчанию DJANGO_SETTINGS_MODULE, чтобы его не нужно было вводить с помощью команды celery.

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

    Спасибо Крису Уорду, @orarbel.

  • Django: Исправлена проблема при использовании настроек Django в Django 1.6.

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

  • Рабочий: Исправлена ошибка атрибута для human_write_stats при использовании совместимой реализации пула prefork.

  • Рабочий: Исправлена совместимость с бильярдом без расширения C.

  • Inspect.conf: Теперь поддерживается аргумент with_defaults.

  • Group.restore: Аргумент backend не был соблюден.

3.1.0

дата выхода:

2013-11-09 11:00 pm. UTC

релиз на:

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

См. Что нового в Celery 3.1 (Cipater).

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