This document describes the current stable version of Celery (5.2). For development docs, go here.
Change history¶
This document contains change notes for bugfix releases in the 4.1.x series, please see What’s new in Celery 4.2 (windowlicker) for an overview of what’s new in Celery 4.2.
4.1.1¶
- release-date:
2018-05-21 12:48 PM PST
- release-by:
Omer Katz
Important
Please upgrade as soon as possible or pin Kombu to 4.1.0.
Breaking Change: The module async in Kombu changed to asynchronous.
Contributed by Omer Katz & Asif Saifuddin Auvi
4.1.0¶
- release-date:
2017-07-25 00:00 PM PST
- release-by:
Omer Katz
Configuration: CELERY_SEND_EVENTS instead of CELERYD_SEND_EVENTS for 3.1.x compatibility (#3997)
Contributed by abhinav nilaratna.
App: Restore behavior so Broadcast queues work. (#3934)
Contributed by Patrick Cloke.
Sphinx: Make appstr use standard format (#4134) (#4139)
Contributed by Preston Moore.
App: Make id, name always accessible from logging.Formatter via extra (#3994)
Contributed by Yoichi NAKAYAMA.
Worker: Add worker_shutting_down signal (#3998)
Contributed by Daniel Huang.
PyPy: Support PyPy version 5.8.0 (#4128)
Contributed by Omer Katz.
Results: Elasticsearch: Fix serializing keys (#3924)
Contributed by @staticfox.
Canvas: Deserialize all tasks in a chain (#4015)
Contributed by @fcoelho.
Systemd: Recover loglevel for ExecStart in systemd config (#4023)
Contributed by Yoichi NAKAYAMA.
Sphinx: Use the Sphinx add_directive_to_domain API. (#4037)
Contributed by Patrick Cloke.
App: Pass properties to before_task_publish signal (#4035)
Contributed by Javier Domingo Cansino.
Results: Add SSL option for Redis backends (#3831)
Contributed by Chris Kuehl.
Beat: celery.schedule.crontab: fix reduce (#3826) (#3827)
Contributed by Taylor C. Richberger.
State: Fix celery issues when using flower REST API
Contributed by Thierry RAMORASOAVINA.
Results: Elasticsearch: Fix serializing document id.
Contributed by Acey9.
Beat: Make shallow copy of schedules dictionary
Contributed by Brian May.
Beat: Populate heap when periodic tasks are changed
Contributed by Wojciech Żywno.
Task: Allow class methods to define tasks (#3952)
Contributed by georgepsarakis.
Platforms: Always return boolean value when checking if signal is supported (#3962).
Contributed by Jian Yu.
Canvas: Avoid duplicating chains in chords (#3779)
Contributed by Ryan Hiebert.
Canvas: Lookup task only if list has items (#3847)
Contributed by Marc Gibbons.
Results: Allow unicode message for exception raised in task (#3903)
Contributed by George Psarakis.
Python3: Support for Python 3.6 (#3904, #3903, #3736)
Contributed by Jon Dufresne, George Psarakis, Asif Saifuddin Auvi, Omer Katz.
App: Fix retried tasks with expirations (#3790)
Contributed by Brendan MacDonell.
Fixes items format route in docs (#3875)
Contributed by Slam.
Utils: Fix maybe_make_aware (#3850)
Contributed by Taylor C. Richberger.
Task: Fix task ETA issues when timezone is defined in configuration (#3867)
Contributed by George Psarakis.
Concurrency: Consumer does not shutdown properly when embedded in gevent application (#3746)
Contributed by Arcadiy Ivanov.
Canvas: Fix #3725: Task replaced with group does not complete (#3731)
Contributed by Morgan Doocy.
Task: Correct order in chains with replaced tasks (#3730)
Contributed by Morgan Doocy.
Result: Enable synchronous execution of sub-tasks (#3696)
Contributed by shalev67.
Task: Fix request context for blocking task apply (added hostname) (#3716)
Contributed by Marat Sharafutdinov.
Utils: Fix task argument handling (#3678) (#3693)
Contributed by Roman Sichny.
Beat: Provide a transparent method to update the Scheduler heap (#3721)
Contributed by Alejandro Pernin.
Beat: Specify default value for pidfile option of celery beat. (#3722)
Contributed by Arnaud Rocher.
Results: Elasticsearch: Stop generating a new field every time when a new result is being put (#3708)
Contributed by Mike Chen.
Requirements
Now depends on Kombu 4.1.0.
Results: Elasticsearch now reuses fields when new results are added.
Contributed by Mike Chen.
Results: Fixed MongoDB integration when using binary encodings (Issue #3575).
Contributed by Andrew de Quincey.
Worker: Making missing
*args
and**kwargs
in Task protocol 1 return empty value in protocol 2 (Issue #3687).Contributed by Roman Sichny.
App: Fixed
TypeError
in AMQP when using deprecated signal (Issue #3707).Contributed by @michael-k.
Beat: Added a transparent method to update the scheduler heap.
Contributed by Alejandro Pernin.
Task: Fixed handling of tasks with keyword arguments on Python 3 (Issue #3657).
Contributed by Roman Sichny.
Task: Fixed request context for blocking task apply by adding missing hostname attribute.
Contributed by Marat Sharafutdinov.
Task: Added option to run subtasks synchronously with
disable_sync_subtasks
argument.Contributed by @shalev67.
App: Fixed chaining of replaced tasks (Issue #3726).
Contributed by Morgan Doocy.
Canvas: Fixed bug where replaced tasks with groups were not completing (Issue #3725).
Contributed by Morgan Doocy.
Worker: Fixed problem where consumer does not shutdown properly when embedded in a gevent application (Issue #3745).
Contributed by Arcadiy Ivanov.
Results: Added support for using AWS DynamoDB as a result backend (#3736).
Contributed by George Psarakis.
Testing: Added caching on pip installs.
Contributed by @orf.
Worker: Prevent consuming queue before ready on startup (Issue #3620).
Contributed by Alan Hamlett.
App: Fixed task ETA issues when timezone is defined in configuration (Issue #3753).
Contributed by George Psarakis.
Utils:
maybe_make_aware
should not modify datetime when it is already timezone-aware (Issue #3849).Contributed by Taylor C. Richberger.
App: Fixed retrying tasks with expirations (Issue #3734).
Contributed by Brendan MacDonell.
Results: Allow unicode message for exceptions raised in task (Issue #3858).
Contributed by @staticfox.
Canvas: Fixed
IndexError
raised when chord has an empty header.Contributed by Marc Gibbons.
Canvas: Avoid duplicating chains in chords (Issue #3771).
Contributed by Ryan Hiebert and George Psarakis.
Utils: Allow class methods to define tasks (Issue #3863).
Contributed by George Psarakis.
Beat: Populate heap when periodic tasks are changed.
Contributed by @wzywno and Brian May.
Results: Added support for Elasticsearch backend options settings.
Contributed by @Acey9.
Events: Ensure
Task.as_dict()
works when not all information about task is available.Contributed by @tramora.
Schedules: Fixed pickled crontab schedules to restore properly (Issue #3826).
Contributed by Taylor C. Richberger.
Results: Added SSL option for redis backends (Issue #3830).
Contributed by Chris Kuehl.
Documentation and examples improvements by:
Bruno Alla
Jamie Alessio
Vivek Anand
Peter Bittner
Kalle Bronsen
Jon Dufresne
James Michael DuPont
Sergey Fursov
Samuel Dion-Girardeau
Daniel Hahler
Mike Helmick
Marc Hörsken
Christopher Hoskin
Daniel Huang
Primož Kerin
Michal Kuffa
Simon Legner
Anthony Lukach
Ed Morley
Jay McGrath
Rico Moorman
Viraj Navkal
Ross Patterson
Dmytro Petruk
Luke Plant
Eric Poelke
Salvatore Rinchiera
Arnaud Rocher
Kirill Romanov
Simon Schmidt
Tamer Sherif
YuLun Shih
Ask Solem
Tom ‘Biwaa’ Riat
Arthur Vigil
Joey Wilhelm
Jian Yu
YuLun Shih
Arthur Vigil
Joey Wilhelm