[Ann] Celery 2.0 released
askh at opera.com
Fri Jul 2 15:59:51 CEST 2010
Celery 2.0 has been released
We're happy to announce the release of Celery 2.0.
Big thanks to all contributors, testers and users!
What is it?
Celery is an asynchronous task queue/job queue based on distributed
message passing. It is focused on real-time operation, but supports
scheduling as well.
The execution units, called tasks, are executed concurrently on a single
or more worker servers. Tasks can execute asynchronously (in the background)
or synchronously (wait until ready).
Celery is already used in production to process millions of tasks a day.
Celery is written in Python, but the protocol can be implemented in
any language. It can also operate with other languages using webhooks.
The recommended message broker is RabbitMQ, but support for Redis and
databases is also available.
You may also be pleased to know that full Django integration exists,
delivered by the django-celery package.
* Django dependency removed.
Django integration has been moved to a separate package
SQLAlchemy is now used instead of the Django ORM for the database
* A curses real-time monitor: celeryev.
* Support for soft and hard time limits.
The worker processing the task will be
killed and replaced with a new process when this is exceeded.
The celery.exceptions.SoftTimeLimitExceeded exception
will be raised when this is exceeded. The task can catch this to
clean up before the hard time limit terminates it.
* Periodic tasks schedules can now be expressed using complex
For example, you can now use::
>>> crontab(minute="*/30", hour="8-17,1-2",
* Built-in way to do task callbacks.
* Simplified routing of tasks.
* TaskSets can now contain several types of tasks.
Tasksets has been refactored to use a new syntax, please see
http://celeryq.org/docs/userguide/tasksets.html for more
information. The previous syntax is still supported but deprecated,
and will be completely removed in Celery 2.2.
* AMQP result backend can now do polling of results.
This means it supports ``result.ready()``, ``.successful()``,
* AMQP result backend now supports timeouts when waiting
* celeryd: --maxtasksperchild
Defines the maximum number of tasks a pool worker can process
before the process is terminated and replaced by a new one.
* It's now possible to use the client side of Celery without
And lots more!
The Changelog contains upgrade instructions and a detailed
list of all changes:
Thank you for reading it.
:Mailing list: http://groups.google.com/group/celery-users
:IRC: #celery at irc.freenode.net.
twitter.com/asksol | github.com/ask }.
More information about the Python-announce-list