Skip to content

Latest commit

 

History

History
214 lines (135 loc) · 5.17 KB

changelog-2.5.rst

File metadata and controls

214 lines (135 loc) · 5.17 KB

Change history for Celery 2.5

This document contains change notes for bugfix releases in the 2.5.x series, please see :ref:`whatsnew-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 :ref:`history` of releases.

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
release-date:2012-04-16 07:00 P.M BST
release-by:Ask Solem
  • A bug causes messages to be sent with UTC timestamps even though :setting:`CELERY_ENABLE_UTC` was not enabled (Issue #636).
  • celerybeat: No longer crashes if an entry's args is set to None (Issue #657).
  • Autoreload did not work if a module's __file__ attribute was set to the modules '.pyc' file. (Issue #647).
  • Fixes early 2.5 compatibility where __package__ does not exist (Issue #638).
release-date:2012-04-13 04:30 P.M GMT
release-by:Ask Solem
  • Now depends on Kombu 2.1.5.

  • Django documentation has been moved to the main Celery docs.

    See :ref:`django`.

  • New :signal:`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.

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

  • Autoreload'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.

release-date:2012-03-01 01:00 P.M GMT
release-by:Ask Solem
  • Eventlet/Gevent: A small typo caused the worker to hang when eventlet/gevent was used, this was because the environment was not 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.
  • Mulitprocessing: Fixed an error occurring if the pool was stopped before it was properly started.
  • Proxy objects now redirects __doc__ and __name__ so help(obj) works.
  • Internal timer (timer2) now logs exceptions instead of swallowing them (Issue #626).
  • celery shell: can now be started with :option:`--eventlet` or :option:`--gevent` options to apply their monkey patches.
release-date:2012-02-24 04:00 P.M GMT
release-by:Ask Solem

See :ref:`whatsnew-2.5`.

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.