[Ann] Celery 2.0 released

Ask Solem 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.

What's new?

* Django dependency removed.

Django integration has been moved to a separate package
called django-celery.

SQLAlchemy is now used instead of the Django ORM for the database
result store.

* 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
  crontab-like expressions.

    For example, you can now use::

        >>> crontab(minute="*/15")

    or even::

        >>> crontab(minute="*/30", hour="8-17,1-2",
        ...         day_of_week="thu-fri")

* 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
  for results.

* 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.


:Homepage: http://celeryproject.org

:Download: http://pypi.python.org/pypi/celery

:Documentation: http://celeryproject.org/docs/

:Changelog: http://celeryproject.org/docs/changelog.html

:Code: http://github.com/ask/celery/

:FAQ: http://ask.github.com/celery/faq.html

:Mailing list: http://groups.google.com/group/celery-users

:IRC: #celery at irc.freenode.net.

{Ask Solem,
  twitter.com/asksol | github.com/ask }.

More information about the Python-announce-list mailing list