История изменений¶
Этот документ содержит примечания к изменениям для выпусков с исправлениями в серии 4.2.x. Обзор нового в Celery 4.2 смотрите в Что нового в Celery 4.2 (windowlicker).
4.2.1¶
- дата выхода:
2018-07-18 11:00 AM IST
- релиз на:
Омер Кац
Бэкэнд результатов: Исправьте десериализацию исключений, которые присутствуют в кодовой базе производителя, но не присутствуют в кодовой базе потребителя.
При участии Джона Арнольда.
Совместимость протоколов сообщений: Исправление ошибки, вызванной недопустимым значением (None) timelimit в заголовках сообщений при переносе сообщений с 3.x на 4.x.
Внесено Робертом Копачевски.
Result Backend: Исправьте сериализацию аргументов исключений, когда аргументы исключений не сериализуются в JSON по умолчанию.
Предоставлено Томом Бутом
Работник: Исправлены многочисленные проблемы с заданиями с ограничением скорости
Поддерживайте порядок составления расписания. Исправление возможного планирования
celery.worker.request.Request
с неправильнымkombu.utils.limits.TokenBucket
, что могло привести к неправильному поведению ограничения скорости заданий. Исправление возможного дублирования выполнения задач, которые были ограничены по скорости или если для них был предоставлен ETA/Countdown.Внесено @ideascf
Рабочий: Защитная обработка недействительных значений заголовка timelimit в запросах.
При участии Омера Каца.
Исправлена документация:
Мэтт Виенс
Сынхун Ли
Льюис М. Кабуи.
Пратхамеш Салункхе
4.2.0¶
- дата выхода:
2018-06-10 21:30
- релиз на:
Омер Кац
Задача: Добавьте
ignore_result
в качестве опции выполнения задачи (#4709, #3834)При участии Андрея Костенко и Георгия Псаракиса.
Redis Result Backend: Не создавайте подписки PubSub, когда результаты игнорируются (#4709, #3834)
При участии Андрея Костенко и Георгия Псаракиса.
Redis Result Backend: Потребитель результата всегда отписывается, когда состояние задачи готово (#4666)
Внесено Георгием Псаракисом.
Разработка/тестирование: Добавьте docker-compose и базовый Dockerfile для разработки (#4482)
Внесено Крисом Митчеллом.
Документация/Sphinx: Научите autodoc документировать задачи, если undoc-members не установлен (#4588)
Внесено Лео Сингером.
Документация/Sphinx: Верните опцию undoc-members в тесте sphinx (#4586)
Внесено Лео Сингером.
Документация/Sphinx: Sphinx autodoc подбирает задания автоматически, только если установлено undoc-members (#4584)
Внесено Лео Сингером.
Задача: Исправление проблемы shadow_name при использовании класса Task предыдущей версии (#4572)
Внесено @pachewise.
Задача: Добавьте поддержку связанных задач в качестве параметра link_error (Исправления #3723) (#4545)
Внесено @brabiega.
Развертывание: Добавьте опцию командной строки для установки URL-адреса бэкенда результата (#4549)
Внесено @y0ngdi.
CI: Включите кэш pip в сборке appveyor (#4546)
При участии Thijs Triemstra.
Concurrency/Asynpool: Исправьте затенение имени свойства errno.
Внесено Омером Кацем.
Бэкэнд DynamoDB: Настраиваемый URL конечной точки (#4532)
Внесено Богданом Рыбаком.
Временные зоны: Корректное определение часового пояса UTC и часового пояса из настроек (Исправления #4517) (#4519)
Внесено @last-partizan.
Контроль: Очистка пула производителей почтового ящика после форкинга (#4472)
Внесено Ником Икетом.
Документация: Запуск Celery и Celery Beat на Azure WebJob (#4484)
Внесено PauloPeres.
Celery Beat: Запланировать необходимые задачи при запуске, после перезапуска Beat (#4493)
Внесено Игорем Касьяновым.
Рабочий: Используйте абсолютное время, когда задание принимается пулом рабочих (#3684)
При участии Региса Бехмо.
Канвас: Распространять аргументы для цепочек внутри групп (#4481)
Внесено Крисом Митчеллом.
Канвас: Исправьте поведение Task.replace во вложенных аккордах (исправления #4368) (#4369)
При участии Дениса Широкова и Алекса Хилла.
Установка: Передавайте аргумент python_requires в setuptools (#4479)
Внесено Джоном Дюфрейном.
Совместимость протоколов сообщений: Обработка «гибридных» сообщений, перешедших из одной версии Celery в другую (#4358) (Проблема #4356)
Внесено Расселом Кит-Мейджи.
Canvas: запрос on_timeout теперь игнорирует исключение мягкого ограничения времени (исправления #4412) (#4473)
Внесено Алексом Гарелом.
Redis Result Backend: Интеграционный тест для проверки отписок PubSub (#4468)
Внесено Георгием Псаракисом.
Свойства протокола сообщений: Разрешите аргумент ключевого слова shadow и метод shadow_name для правильной установки тени (#4381)
Внесено @hclihn.
Канвас: Запускайте chord_unlock в той же очереди, что и тело аккорда (#4448) (Проблема #4337)
Внесено Алексом Хиллом.
Канвас: Поддержка аккордов с пустой группой заголовков (#4443)
Внесено Алексом Хиллом.
Временные зоны: сделайте вызов astimezone в localize более безопасным (#4324).
Внесено Мэттом Дэвисом.
Канвас: Исправление длины-1 и вложенных аккордов (#4437) (Вопросы #4393, #4055, #3885, #3597, #3574, #3323, #4301)
Внесено Алексом Хиллом.
CI: Запустите Openstack Bandit в Travis CI для обнаружения проблем безопасности.
Внесено Омером Кацем.
CI: Запустите isort в Travis CI для выравнивания утверждений импорта Python.
Внесено Омером Кацем.
Canvas: Разрешение ошибки типа .get из вложенных групп (#4432) (Выпуск #4274)
Предоставлено Мишей Вольфсон.
Бэкенд CouchDB: Исправление типа строки ключа CouchDB для совместимости с Python 2/3 (#4166)
Вклад внесли @fmind && Омер Кац.
Результат группы: Исправьте возврат к текущему_приложению в GroupResult.restore() (#4431)
Внесено Алексом Хиллом.
Consul Backend: Исправьте тип ключевой строки для совместимости с Python 2/3 (#4416)
Внесено Видо ден Холландером.
Результат группы: Корректное восстановление пустого GroupResult (#2202) (#4427)
Вклад внесли Алекс Хилл и Омер Кац.
Результат: Отключение синхронного ожидания для подзадач в режиме eager (#4322)
При участии Дениса Подлесного.
Celery Beat: Обнаружение изменений часового пояса или летнего времени (#1604) (#4403)
Предоставлено Винсентом Барбарези.
Канвас: Исправление добавления к пустой цепочке. Исправления #4047. (#4402)
Внесено Омером Кацем.
Задача: Разрешить тени переопределять имя задачи в сообщениях трассировки и протоколирования. (#4379)
Внесено @hclihn.
Документация/Sphinx: Исправьте совместимость с getfullargspec Python 2.x в contrib/sphinx.py (#4399)
Внесено Хавьером Мартином Монтуллом.
Документация: Обновлены инструкции по установке брокера SQS (#4382)
Внесено Серхио Фернандесом.
Celery Beat: Улучшение сравнения равенства для экземпляров ScheduleEntry (#4312)
Внесено @mariia-zelenova.
Задача: Добавление свойства „shadow“ в as_task_v2 (#4350)
Принесено Марсело Да Круз Пинто.
Попробуйте импортировать напрямую, не используйте устаревший метод imp (#4216)
Внесено Тобиасом Кунце.
Задача: Включите переопределение kwargsrepr и argsrepr для изменения представления аргументов задачи (#4260)
Предоставлено Джеймсом М. Алленом.
Result Backend: Добавьте бэкенд Redis Sentinel (#4144)
Внесено Джеффри Бодуэном.
Используйте уникальные значения времени для коллекций/LimitedSet (#3879 и #3891) (#3892)
Внесено @lead2gold.
CI: Охват отчетов для всех бэкендов результатов.
Внесено Омером Кацем.
Django: Используйте настройку максимального возраста соединения Django DB (исправления #4116) (#4292)
Внесено Марко Швайгхаузером.
Канва: Правильно учитывайте цепочку задач link_error (#4240)
Внесено @agladkov.
Канвас: Позволяет создавать группу с одной задачей (исправляет проблему #4255) (#4280)
Внесено @agladkov.
Канвас: Копируйте параметр словаря в chord.from_dict перед изменением (исправляет проблему #4223) (#4278)
Внесено @agladkov.
Бэкенд результатов: Добавить опции Cassandra (#4224)
Внесено Скоттом Купером.
Работник: Применяйте ограничение ставки для заданий с ETA (#4251)
Внесено @arpanshah29.
Celery Beat: поддержка записей в планировщике без расписания (#4235).
Внесено Маркусом Кайзерсвертом.
SQS Broker: Обновлен файл требований SQS с правильной версией boto3 (#4231)
Внесено Алехандро Варасом.
Удалите неиспользуемый код из контекст-менеджера _create_app (#4204)
Внесено Райаном П. Килби.
Групповой результат: Измените GroupResult.as_tuple() для включения родителя (исправления #4106) (#4205)
Внесено @pachewise.
Beat: Установка класса планировщика по умолчанию в команде beat. (#4189)
Внесено @Kxrr.
Рабочий: Повторное обращение к приемнику сигнала после возникновения исключения (#4192)
Внесено Дэвидом Дэвисом.
Задача: Разрешить пользовательский класс Request для задач (#3977)
Внесено Мануэлем Васкесом Акостой.
Django: Исправление Django должно закрывать все бэкенды кэша (#4187)
Внесено Рафаэлем Рьелем.
Деплоймент: Добавляет stopasgroup в скрипты супервизора (#4200)
Внесено @martialp.
Использование Exception.args для сериализации/десериализации исключений (#4085)
Внесено Александром Овечкиным.
Временные зоны: Корректный расчет текущего времени приложения с учетом часового пояса (#4173)
Внесено Георгием Псаракисом.
Удаленный отладчик: Установите опцию SO_REUSEADDR на сокете (#3969)
Внесено Теодором Дюбуа.
Django: Celery игнорирует исключения, возникающие во время django.setup() (#4146)
Внесено Кевином Гу.
Используйте настройки сердцебиения из конфигурации приложения для соединения с брокером (#4148)
Внесено @mperice.
Celery Beat: Исправлено исключение, вызванное тем, что next_transit получал неожиданный аргумент. (#4103)
Внесено DDevine.
Задача Внедрение экспоненциального отката с автоповтором задачи (#4101)
Внесено Дэвидом Баумголдом.
AsyncResult: Удалите слабые ссылки на связанные методы в обещаниях AsyncResult. (#4131)
Внесено Винодом Чандру.
Разработка/тестирование: Разрешить нетерпеливое применение структур холста (#4576)
Внесено Николасом Пилоном.
Командная строка: Промойте stderr перед выходом с кодом ошибки 1.
Внесено Антонином Дельпеухом.
Задача: Исключает одинарные кавычки в строках kwargsrepr.
При участии Карима Зидана
AsyncResult: Восстановите возможность объединения через ResultSet после исправления celery/#3818.
При участии Дерека Харланда
Redis Results Backend: Отписка при успешном получении сообщения.
Ранее Celery сливал каналы, заполняя память экземпляра Redis.
Внесено Георгием Псаракисом.
Задача: Преобразовывать eta в изоформат только в том случае, если он еще не является строкой.
При участии Омера Каца.
Redis Results Backend: Настройка result_backend теперь поддерживает URI rediss://.
При участии Джеймса Ремейка.
Canvas Аргументы ключевых слов передаются задачам в цепочке, как и ожидалось.
Внесено @tothegump
Django Исправление регрессии, приводившей к аварийному завершению работы Celery при использовании Django.
При участии Йонаса Хаага.
Canvas Цепочка с одной задачей теперь выполняется как ожидалось.
Внесено @tothegump
Kombu Celery 4.2 теперь требует Kombu 4.2 или выше.
При участии Омера Каца и Асифа Сайфуддина Ауви.
GreenletExit is not in __all__ в greenlet.py, который не может быть импортирован Python 3.6.
Импорт был скорректирован для работы и на Python 3.6.
При участии Хсиаомин Янг.
Исправлена регрессия, возникшая во время разработки Celery 4.2, которая приводила к аварийному завершению работы celery report при установленном Django.
При участии Хосуэ Баландрано Коронель.
Привели поведение GroupResult.as_tuple() в соответствие с поведением AsyncResult.as_tuple().
Родитель группы теперь сериализуется правильно.
При участии Хосуэ Баландрано Коронель.
Используйте механизм коэрцитивности Redis для преобразования параметров запроса URI.
При участии Джастина Патрина
Исправлено представление GroupResult.
График зависимостей теперь представлен правильно.
При участии Хосуэ Баландрано Коронель.
Документация, CI, установка и тесты исправлений:
Сэмми С. Таунтон.
Дан Уилсон
Абеллана Серги Альмацелла.
Омер Кац
Алекс Зайцев
Лео Сингер
**Рэйчел Джонсон
Джон Дюфрейн
Самюэль Дион-Жирардо
**Райан Гость
**Хуан Хуан
** Жоффрей Бодуэн
Эндрю Вонг
Мэдс Дженсен
Джеки Ленг
Гарри Морено
Николас Мота
Арменак Бабурян
Патрик Чжан
Бен Уэлш
Майкл Пик
Фэньюань Чэнь
Ксавьер Харди
Шитикантх
Игорь Касьянов
Джон Арнольд
Роберт Найт
Асиф Сайфуддин Ауви.
Эдуардо Рамирес
**Камиль Брегула
**Хуан Гутьеррес