This document describes the current stable version of Celery (5.2). For development docs, go here.
Change history for Celery 2.5¶
This document contains change notes for bugfix releases in the 2.5.x series, please see What’s new in Celery 2.5 for an overview of what’s new in Celery 2.5.
If you’re looking for versions prior to 2.5 you should visit our History of releases.
2.5.5¶
- release-date:
2012-06-06 04:00 p.m. BST
- release-by:
Ask Solem
This is a dummy release performed for the following goals:
Protect against force upgrading to Kombu 2.2.0
Version parity with django-celery
2.5.3¶
- release-date:
2012-04-16 07:00 p.m. BST
- release-by:
Ask Solem
A bug causes messages to be sent with UTC time-stamps even though
CELERY_ENABLE_UTC
wasn’t enabled (Issue #636).celerybeat
: No longer crashes if an entry’s args is set to None (Issue #657).Auto-reload didn’t work if a module’s
__file__
attribute was set to the modules.pyc
file. (Issue #647).Fixes early 2.5 compatibility where
__package__
doesn’t exist (Issue #638).
2.5.2¶
- release-date:
2012-04-13 04:30 p.m. GMT
- release-by:
Ask Solem
News¶
Now depends on Kombu 2.1.5.
Django documentation has been moved to the main Celery docs.
See Django.
New
celeryd_init
signal can be used to configure workers by hostname.Signal.connect can now be used as a decorator.
Example:
from celery.signals import task_sent @task_sent.connect def on_task_sent(**kwargs): print('sent task: %r' % (kwargs,))
Invalid task messages are now rejected instead of acked.
This means that they will be moved to the dead-letter queue introduced in the latest RabbitMQ version (but must be enabled manually, consult the RabbitMQ documentation).
Internal logging calls has been cleaned up to work better with tools like Sentry.
Contributed by David Cramer.
New method
subtask.clone()
can be used to clone an existing subtask with augmented arguments/options.Example:
>>> s = add.subtask((5,)) >>> new = s.clone(args=(10,), countdown=5}) >>> new.args (10, 5) >>> new.options {'countdown': 5}
Chord callbacks are now triggered in eager mode.
Fixes¶
Programs now verifies that the pidfile is actually written correctly (Issue #641).
Hopefully this will crash the worker immediately if the system is out of space to store the complete pidfile.
In addition, we now verify that existing pidfiles contain a new line so that a partially written pidfile is detected as broken, as before doing:
$ echo -n "1" > celeryd.pid
would cause the worker to think that an existing instance was already running (init has pid 1 after all).
Fixed 2.5 compatibility issue with use of print_exception.
Fix contributed by Martin Melin.
Fixed 2.5 compatibility issue with imports.
Fix contributed by Iurii Kriachko.
All programs now fix up
__package__
when called as main.This fixes compatibility with Python 2.5.
Fix contributed by Martin Melin.
[celery control|inspect] can now be configured on the command-line.
Like with the worker it is now possible to configure Celery settings on the command-line for celery control|inspect
$ celery inspect -- broker.pool_limit=30
Version dependency for python-dateutil fixed to be strict.
Fix contributed by Thomas Meson.
Task.__call__
is now optimized away in the task tracer rather than when the task class is created.This fixes a bug where a custom __call__ may mysteriously disappear.
Auto-reload’s
inotify
support has been improved.Contributed by Mher Movsisyan.
The Django broker documentation has been improved.
Removed confusing warning at top of routing user guide.
2.5.1¶
- release-date:
2012-03-01 01:00 p.m. GMT
- release-by:
Ask Solem
Fixes¶
Eventlet/Gevent: A small typo caused the worker to hang when eventlet/gevent was used, this was because the environment wasn’t monkey patched early enough.
Eventlet/Gevent: Another small typo caused the mediator to be started with eventlet/gevent, which would make the worker sometimes hang at shutdown.
multiprocessing
: Fixed an error occurring if the pool was stopped before it was properly started.Proxy objects now redirects
__doc__
and__name__
sohelp(obj)
works.Internal timer (timer2) now logs exceptions instead of swallowing them (Issue #626).
celery shell: can now be started with
--eventlet
or--gevent
options to apply their monkey patches.
2.5.0¶
- release-date:
2012-02-24 04:00 p.m. GMT
- release-by:
Ask Solem
Since the changelog has gained considerable size, we decided to do things differently this time: by having separate “what’s new” documents for major version changes.
Bugfix releases will still be found in the changelog.