|
@@ -2,8 +2,29 @@
|
|
Change history
|
|
Change history
|
|
================
|
|
================
|
|
|
|
|
|
-1.2.0 [xxxx-xx-xx xx:xx x.x xxxx]
|
|
|
|
-=================================
|
|
|
|
|
|
+.. contents::
|
|
|
|
+ :local:
|
|
|
|
+
|
|
|
|
+1.2.0
|
|
|
|
+=====
|
|
|
|
+:release-date: NOT RELEASED
|
|
|
|
+:branch: master
|
|
|
|
+:state: beta
|
|
|
|
+
|
|
|
|
+Celery 1.2 contains backward incompatible changes, the most important
|
|
|
|
+being that the Django dependency has been removed, so Celery no longer
|
|
|
|
+supports Django out of the box, but instead as an add-on package
|
|
|
|
+called `django-celery`_.
|
|
|
|
+
|
|
|
|
+We're very sorry for breaking backwards compatibility, but there's
|
|
|
|
+also many new and exciting features to make up for the time you lose
|
|
|
|
+upgrading, so be sure to read the :ref:`News <120news>` section.
|
|
|
|
+
|
|
|
|
+Quite a lot of potential users have been upset about the Django dependency,
|
|
|
|
+so maybe this is a chance to get wider adoption by the Python community as
|
|
|
|
+well.
|
|
|
|
+
|
|
|
|
+Big thanks to all contributors, testers and users!
|
|
|
|
|
|
Upgrading for Django-users
|
|
Upgrading for Django-users
|
|
--------------------------
|
|
--------------------------
|
|
@@ -90,6 +111,25 @@ the ``CELERY_RESULT_ENGINE_OPTIONS`` setting::
|
|
Backward incompatible changes
|
|
Backward incompatible changes
|
|
-----------------------------
|
|
-----------------------------
|
|
|
|
|
|
|
|
+* Default (python) loader now prints warning on missing ``celeryconfig.py``
|
|
|
|
+ instead of raising :exc:`ImportError`.
|
|
|
|
+
|
|
|
|
+ celeryd raises :exc:`~celery.exceptions.ImproperlyConfigured` if the configuration
|
|
|
|
+ is not set up. This makes it possible to use ``--help`` etc, without having a
|
|
|
|
+ working configuration.
|
|
|
|
+
|
|
|
|
+ Also this makes it possible to use the client side of celery without being
|
|
|
|
+ configured::
|
|
|
|
+
|
|
|
|
+ >>> from carrot.connection import Connection
|
|
|
|
+ >>> conn = Connection("localhost", "guest", "guest", "/")
|
|
|
|
+ >>> from celery.execute import send_task
|
|
|
|
+ >>> r = send_task("celery.ping", args=(), kwargs={}, connection=conn)
|
|
|
|
+ >>> from celery.backends.amqp import AMQPBackend
|
|
|
|
+ >>> r.backend = AMQPBackend(connection=conn)
|
|
|
|
+ >>> r.get()
|
|
|
|
+ 'pong'
|
|
|
|
+
|
|
* The following deprecated settings has been removed (as scheduled by
|
|
* The following deprecated settings has been removed (as scheduled by
|
|
the `deprecation timeline`_):
|
|
the `deprecation timeline`_):
|
|
|
|
|
|
@@ -122,10 +162,79 @@ Backward incompatible changes
|
|
|
|
|
|
CELERY_LOADER = "myapp.loaders.Loader"
|
|
CELERY_LOADER = "myapp.loaders.Loader"
|
|
|
|
|
|
|
|
+.. _120news:
|
|
|
|
+
|
|
News
|
|
News
|
|
----
|
|
----
|
|
|
|
|
|
-* now depends on billiard >= 0.4.0
|
|
|
|
|
|
+* **celeryev**: Curses Celery Monitor and Event Viewer.
|
|
|
|
+
|
|
|
|
+ This is a simple monitor allowing you to see what tasks are
|
|
|
|
+ executing in real-time and investigate tracebacks and results of ready
|
|
|
|
+ tasks. It also enables you to set new rate limits and revoke tasks.
|
|
|
|
+
|
|
|
|
+ Screenshot:
|
|
|
|
+
|
|
|
|
+ .. image:: http://celeryproject.org/img/celeryevshotsm.jpg
|
|
|
|
+
|
|
|
|
+ If you run ``celeryev`` with the ``-d`` switch it will act as an event
|
|
|
|
+ dumper, simply dumping the events it receives to standard out::
|
|
|
|
+
|
|
|
|
+ $ celeryev -d
|
|
|
|
+ -> celeryev: starting capture...
|
|
|
|
+ casper.local [2010-06-04 10:42:07.020000] heartbeat
|
|
|
|
+ casper.local [2010-06-04 10:42:14.750000] task received:
|
|
|
|
+ tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={}
|
|
|
|
+ eta=2010-06-04T10:42:16.669290, retries=0
|
|
|
|
+ casper.local [2010-06-04 10:42:17.230000] task started
|
|
|
|
+ tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={}
|
|
|
|
+ casper.local [2010-06-04 10:42:17.960000] task succeeded:
|
|
|
|
+ tasks.add(61a68756-27f4-4879-b816-3cf815672b0e)
|
|
|
|
+ args=[2, 2] kwargs={} result=4, runtime=0.782663106918
|
|
|
|
+
|
|
|
|
+ The fields here are, in order: *sender hostname*, *timestamp*, *event type* and
|
|
|
|
+ *additional event fields*.
|
|
|
|
+
|
|
|
|
+* :mod:`billiard` has been moved back to the celery repository.
|
|
|
|
+
|
|
|
|
+ ===================================== =====================================
|
|
|
|
+ **Module name** **celery equivalent**
|
|
|
|
+ ===================================== =====================================
|
|
|
|
+ ``billiard.pool`` ``celery.concurrency.processes.pool``
|
|
|
|
+ ``billiard.serialization`` ``celery.serialization``
|
|
|
|
+ ``billiard.utils.functional`` ``celery.utils.functional``
|
|
|
|
+ ===================================== =====================================
|
|
|
|
+
|
|
|
|
+ The :mod:`billiard` distribution may be maintained, depending on interest.
|
|
|
|
+
|
|
|
|
+* now depends on :mod:`carrot` >= 0.10.5
|
|
|
|
+
|
|
|
|
+* now depends on :mod:`pyparsing`
|
|
|
|
+
|
|
|
|
+* Added support for using complex crontab-expressions in periodic tasks. For
|
|
|
|
+ example, you can now use::
|
|
|
|
+
|
|
|
|
+ >>> crontab(minute="*/15")
|
|
|
|
+
|
|
|
|
+ or even::
|
|
|
|
+
|
|
|
|
+ >>> crontab(minute="*/30", hour="8-17,1-2", day_of_week="thu-fri")
|
|
|
|
+
|
|
|
|
+ See :doc:`getting-started/periodic-tasks`.
|
|
|
|
+
|
|
|
|
+* celeryd: Now waits for available pool processes before applying new
|
|
|
|
+ tasks to the pool.
|
|
|
|
+
|
|
|
|
+ This means it doesn't have to wait for dozens of tasks to finish at shutdown
|
|
|
|
+ because it has already applied n prefetched tasks without any pool
|
|
|
|
+ processes to immediately accept them.
|
|
|
|
+
|
|
|
|
+ Some overhead for very short tasks though, then the shutdown probably doesn't
|
|
|
|
+ matter either so can disable with::
|
|
|
|
+
|
|
|
|
+ CELERYD_POOL_PUTLOCKS = False
|
|
|
|
+
|
|
|
|
+ See http://github.com/ask/celery/issues/closed#issue/122
|
|
|
|
|
|
* Added support for task soft and hard timelimits.
|
|
* Added support for task soft and hard timelimits.
|
|
|
|
|
|
@@ -153,18 +262,8 @@ News
|
|
Also when the hard time limit is exceeded, the task result should
|
|
Also when the hard time limit is exceeded, the task result should
|
|
be a ``TimeLimitExceeded`` exception.
|
|
be a ``TimeLimitExceeded`` exception.
|
|
|
|
|
|
-* celeryd now waits for available pool processes before applying new tasks to the pool.
|
|
|
|
-
|
|
|
|
- This means it doesn't have to wait for dozens of tasks to finish at shutdown
|
|
|
|
- because it applied n prefetched tasks at once.
|
|
|
|
-
|
|
|
|
- Some overhead for very short tasks though, then the shutdown probably doesn't
|
|
|
|
- matter either so the feature can disable by the ``CELERYD_POOL_PUTLOCKS``
|
|
|
|
- setting::
|
|
|
|
-
|
|
|
|
- CELERYD_POOL_PUTLOCKS = False
|
|
|
|
-
|
|
|
|
- See http://github.com/ask/celery/issues/#issue/122
|
|
|
|
|
|
+* Test suite is now passing without a running broker, using the carrot
|
|
|
|
+ in-memory backend.
|
|
|
|
|
|
* Log output is now available in colors.
|
|
* Log output is now available in colors.
|
|
|
|
|
|
@@ -246,7 +345,7 @@ News
|
|
* celeryd: Added ``CELERYD_MAX_TASKS_PER_CHILD`` /
|
|
* celeryd: Added ``CELERYD_MAX_TASKS_PER_CHILD`` /
|
|
:option:`--maxtasksperchild`
|
|
:option:`--maxtasksperchild`
|
|
|
|
|
|
- Defineds the maximum number of tasks a pool worker can process before
|
|
|
|
|
|
+ Defines the maximum number of tasks a pool worker can process before
|
|
the process is terminated and replaced by a new one.
|
|
the process is terminated and replaced by a new one.
|
|
|
|
|
|
* Revoked tasks now marked with state ``REVOKED``, and ``result.get()``
|
|
* Revoked tasks now marked with state ``REVOKED``, and ``result.get()``
|
|
@@ -269,6 +368,25 @@ News
|
|
|
|
|
|
$ celeryd -Q image,video
|
|
$ celeryd -Q image,video
|
|
|
|
|
|
|
|
+* celeryd: New return value for the ``revoke`` control command:
|
|
|
|
+
|
|
|
|
+ Now returns::
|
|
|
|
+
|
|
|
|
+ {"ok": "task $id revoked"}
|
|
|
|
+
|
|
|
|
+ instead of ``True``.
|
|
|
|
+
|
|
|
|
+* celeryd: Can now enable/disable events using remote control
|
|
|
|
+
|
|
|
|
+ Example usage:
|
|
|
|
+
|
|
|
|
+ >>> from celery.task.control import broadcast
|
|
|
|
+ >>> broadcast("enable_events")
|
|
|
|
+ >>> broadcast("disable_events")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+* celeryd: New option ``--version``: Dump version info and exit.
|
|
|
|
+
|
|
* :mod:`celeryd-multi <celeryd.bin.celeryd_multi>`: Tool for shell scripts
|
|
* :mod:`celeryd-multi <celeryd.bin.celeryd_multi>`: Tool for shell scripts
|
|
to start multiple workers.
|
|
to start multiple workers.
|
|
|
|
|
|
@@ -329,14 +447,10 @@ News
|
|
celeryd-multi -n baz.myhost -c 10
|
|
celeryd-multi -n baz.myhost -c 10
|
|
celeryd-multi -n xuzzy.myhost -c 3
|
|
celeryd-multi -n xuzzy.myhost -c 3
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-1.0.4 [2010-05-31 09:54 A.M CEST]
|
|
|
|
-=================================
|
|
|
|
|
|
+1.0.5
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-06-01 02:36 P.M CEST
|
|
|
|
+:md5: c93f7522c2ce98a32e1cc1a970a7dba1
|
|
|
|
|
|
Critical
|
|
Critical
|
|
--------
|
|
--------
|
|
@@ -352,6 +466,12 @@ Critical
|
|
|
|
|
|
* Now depends on :mod:`billiard` >= 0.3.1
|
|
* Now depends on :mod:`billiard` >= 0.3.1
|
|
|
|
|
|
|
|
+* celeryd: Previously exceptions raised by worker components could stall startup,
|
|
|
|
+ now it correctly logs the exceptions and shuts down.
|
|
|
|
+
|
|
|
|
+* celeryd: Prefetch counts was set too late. QoS is now set as early as possible,
|
|
|
|
+ so celeryd can't slurp in all the messages at start-up.
|
|
|
|
+
|
|
Changes
|
|
Changes
|
|
-------
|
|
-------
|
|
|
|
|
|
@@ -360,6 +480,9 @@ Changes
|
|
Tasks that defines steps of execution, the task can then
|
|
Tasks that defines steps of execution, the task can then
|
|
be aborted after each step has completed.
|
|
be aborted after each step has completed.
|
|
|
|
|
|
|
|
+* :class:`~celery.events.EventDispatcher`: No longer creates AMQP channel
|
|
|
|
+ if events are disabled
|
|
|
|
+
|
|
* Added required RPM package names under ``[bdist_rpm]`` section, to support building RPMs
|
|
* Added required RPM package names under ``[bdist_rpm]`` section, to support building RPMs
|
|
from the sources using setup.py
|
|
from the sources using setup.py
|
|
|
|
|
|
@@ -379,8 +502,15 @@ Changes
|
|
* Should I use retry or acks_late?
|
|
* Should I use retry or acks_late?
|
|
* Can I execute a task by name?
|
|
* Can I execute a task by name?
|
|
|
|
|
|
-1.0.3 [2010-05-15 03:00 P.M CEST]
|
|
|
|
-=================================
|
|
|
|
|
|
+1.0.4
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-05-31 09:54 A.M CEST
|
|
|
|
+
|
|
|
|
+* Changlog merged with 1.0.5 as the release was never announced.
|
|
|
|
+
|
|
|
|
+1.0.3
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-05-15 03:00 P.M CEST
|
|
|
|
|
|
Important notes
|
|
Important notes
|
|
---------------
|
|
---------------
|
|
@@ -409,6 +539,10 @@ Important notes
|
|
|
|
|
|
ALTER TABLE celery_taskmeta MODIFY result TEXT NULL
|
|
ALTER TABLE celery_taskmeta MODIFY result TEXT NULL
|
|
|
|
|
|
|
|
+ PostgreSQL::
|
|
|
|
+
|
|
|
|
+ ALTER TABLE celery_taskmeta ALTER COLUMN result DROP NOT NULL
|
|
|
|
+
|
|
* Removed ``Task.rate_limit_queue_type``, as it was not really useful
|
|
* Removed ``Task.rate_limit_queue_type``, as it was not really useful
|
|
and made it harder to refactor some parts.
|
|
and made it harder to refactor some parts.
|
|
|
|
|
|
@@ -572,7 +706,7 @@ Remote control commands
|
|
|
|
|
|
>>> from celery.task.control import broadcast
|
|
>>> from celery.task.control import broadcast
|
|
>>> broadcast("dump_reserved", reply=True)
|
|
>>> broadcast("dump_reserved", reply=True)
|
|
- [{'myworker1': [<TaskWrapper ....>]}]
|
|
|
|
|
|
+ [{'myworker1': [<TaskRequest ....>]}]
|
|
|
|
|
|
* New remote control command: ``dump_schedule``
|
|
* New remote control command: ``dump_schedule``
|
|
|
|
|
|
@@ -584,19 +718,19 @@ Remote control commands
|
|
>>> broadcast("dump_schedule", reply=True)
|
|
>>> broadcast("dump_schedule", reply=True)
|
|
[{'w1': []},
|
|
[{'w1': []},
|
|
{'w3': []},
|
|
{'w3': []},
|
|
- {'w2': ['0. 2010-05-12 11:06:00 pri0 <TaskWrapper:
|
|
|
|
|
|
+ {'w2': ['0. 2010-05-12 11:06:00 pri0 <TaskRequest
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
id:"95b45760-4e73-4ce8-8eac-f100aa80273a",
|
|
id:"95b45760-4e73-4ce8-8eac-f100aa80273a",
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
start:2184.0 stop:3276.0>,)",
|
|
start:2184.0 stop:3276.0>,)",
|
|
kwargs:"{'page': 2}"}>']},
|
|
kwargs:"{'page': 2}"}>']},
|
|
- {'w4': ['0. 2010-05-12 11:00:00 pri0 <TaskWrapper:
|
|
|
|
|
|
+ {'w4': ['0. 2010-05-12 11:00:00 pri0 <TaskRequest
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
id:"c053480b-58fb-422f-ae68-8d30a464edfe",
|
|
id:"c053480b-58fb-422f-ae68-8d30a464edfe",
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
start:1092.0 stop:2184.0>,)",
|
|
start:1092.0 stop:2184.0>,)",
|
|
kwargs:"{\'page\': 1}"}>',
|
|
kwargs:"{\'page\': 1}"}>',
|
|
- '1. 2010-05-12 11:12:00 pri0 <TaskWrapper:
|
|
|
|
|
|
+ '1. 2010-05-12 11:12:00 pri0 <TaskRequest
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
{name:"opalfeeds.tasks.refresh_feed_slice",
|
|
id:"ab8bc59e-6cf8-44b8-88d0-f1af57789758",
|
|
id:"ab8bc59e-6cf8-44b8-88d0-f1af57789758",
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
args:"(<Feeds freq_max:3600 freq_min:60
|
|
@@ -616,13 +750,14 @@ Fixes
|
|
(http://github.com/ask/celery/issues/issue/98)
|
|
(http://github.com/ask/celery/issues/issue/98)
|
|
|
|
|
|
* Now handles exceptions with unicode messages correctly in
|
|
* Now handles exceptions with unicode messages correctly in
|
|
- ``TaskWrapper.on_failure``.
|
|
|
|
|
|
+ ``TaskRequest.on_failure``.
|
|
|
|
|
|
* Database backend: ``TaskMeta.result``: default value should be ``None``
|
|
* Database backend: ``TaskMeta.result``: default value should be ``None``
|
|
not empty string.
|
|
not empty string.
|
|
|
|
|
|
-1.0.2 [2010-03-31 12:50 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+1.0.2
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-03-31 12:50 P.M CET
|
|
|
|
|
|
* Deprecated: ``CELERY_BACKEND``, please use ``CELERY_RESULT_BACKEND``
|
|
* Deprecated: ``CELERY_BACKEND``, please use ``CELERY_RESULT_BACKEND``
|
|
instead.
|
|
instead.
|
|
@@ -665,7 +800,7 @@ Fixes
|
|
|
|
|
|
.. code-block:: python
|
|
.. code-block:: python
|
|
|
|
|
|
- CELERYD_POOL = "celery.worker.pool.TaskPool"
|
|
|
|
|
|
+ CELERYD_POOL = "celery.concurrency.processes.TaskPool"
|
|
CELERYD_MEDIATOR = "celery.worker.controllers.Mediator"
|
|
CELERYD_MEDIATOR = "celery.worker.controllers.Mediator"
|
|
CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController"
|
|
CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController"
|
|
CELERYD_LISTENER = "celery.worker.listener.CarrotListener"
|
|
CELERYD_LISTENER = "celery.worker.listener.CarrotListener"
|
|
@@ -705,8 +840,9 @@ Fixes
|
|
* celeryd: Now handles messages with encoding problems by acking them and
|
|
* celeryd: Now handles messages with encoding problems by acking them and
|
|
emitting an error message.
|
|
emitting an error message.
|
|
|
|
|
|
-1.0.1 [2010-02-24 07:05 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+1.0.1
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-02-24 07:05 P.M CET
|
|
|
|
|
|
* Tasks are now acknowledged early instead of late.
|
|
* Tasks are now acknowledged early instead of late.
|
|
|
|
|
|
@@ -857,10 +993,11 @@ Fixes
|
|
not executeable. Does not modify ``CELERYD`` when using django with
|
|
not executeable. Does not modify ``CELERYD`` when using django with
|
|
virtualenv.
|
|
virtualenv.
|
|
|
|
|
|
-1.0.0 [2010-02-10 04:00 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+1.0.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-02-10 04:00 P.M CET
|
|
|
|
|
|
-BACKWARD INCOMPATIBLE CHANGES
|
|
|
|
|
|
+Backward incompatible changes
|
|
-----------------------------
|
|
-----------------------------
|
|
|
|
|
|
* Celery does not support detaching anymore, so you have to use the tools
|
|
* Celery does not support detaching anymore, so you have to use the tools
|
|
@@ -1000,7 +1137,7 @@ BACKWARD INCOMPATIBLE CHANGES
|
|
|
|
|
|
loader = current_loader()
|
|
loader = current_loader()
|
|
|
|
|
|
-DEPRECATIONS
|
|
|
|
|
|
+Deprecations
|
|
------------
|
|
------------
|
|
|
|
|
|
* The following configuration variables has been renamed and will be
|
|
* The following configuration variables has been renamed and will be
|
|
@@ -1029,7 +1166,7 @@ DEPRECATIONS
|
|
``TaskSet.run`` has now been deprecated, and is scheduled for
|
|
``TaskSet.run`` has now been deprecated, and is scheduled for
|
|
removal in v1.2.
|
|
removal in v1.2.
|
|
|
|
|
|
-NEWS
|
|
|
|
|
|
+News
|
|
----
|
|
----
|
|
|
|
|
|
* Rate limiting support (per task type, or globally).
|
|
* Rate limiting support (per task type, or globally).
|
|
@@ -1090,7 +1227,7 @@ NEWS
|
|
* The results of tasksets are now cached by storing it in the result
|
|
* The results of tasksets are now cached by storing it in the result
|
|
backend.
|
|
backend.
|
|
|
|
|
|
-CHANGES
|
|
|
|
|
|
+Changes
|
|
-------
|
|
-------
|
|
|
|
|
|
* Now depends on carrot >= 0.8.1
|
|
* Now depends on carrot >= 0.8.1
|
|
@@ -1158,20 +1295,21 @@ CHANGES
|
|
* celeryd now correctly handles malformed messages by throwing away and
|
|
* celeryd now correctly handles malformed messages by throwing away and
|
|
acknowledging the message, instead of crashing.
|
|
acknowledging the message, instead of crashing.
|
|
|
|
|
|
-BUGS
|
|
|
|
|
|
+Bugs
|
|
----
|
|
----
|
|
|
|
|
|
* Fixed a race condition that could happen while storing task results in the
|
|
* Fixed a race condition that could happen while storing task results in the
|
|
database.
|
|
database.
|
|
|
|
|
|
-DOCUMENTATION
|
|
|
|
|
|
+Documentation
|
|
-------------
|
|
-------------
|
|
|
|
|
|
* Reference now split into two sections; API reference and internal module
|
|
* Reference now split into two sections; API reference and internal module
|
|
reference.
|
|
reference.
|
|
|
|
|
|
-0.8.4 [2010-02-05 01:52 P.M CEST]
|
|
|
|
----------------------------------
|
|
|
|
|
|
+0.8.4
|
|
|
|
+=====
|
|
|
|
+:release-date: 2010-02-05 01:52 P.M CEST
|
|
|
|
|
|
* Now emits a warning if the --detach argument is used.
|
|
* Now emits a warning if the --detach argument is used.
|
|
--detach should not be used anymore, as it has several not easily fixed
|
|
--detach should not be used anymore, as it has several not easily fixed
|
|
@@ -1185,8 +1323,9 @@ DOCUMENTATION
|
|
* Error e-mails are not sent anymore when the task is retried.
|
|
* Error e-mails are not sent anymore when the task is retried.
|
|
|
|
|
|
|
|
|
|
-0.8.3 [2009-12-22 09:43 A.M CEST]
|
|
|
|
----------------------------------
|
|
|
|
|
|
+0.8.3
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-12-22 09:43 A.M CEST
|
|
|
|
|
|
* Fixed a possible race condition that could happen when storing/querying
|
|
* Fixed a possible race condition that could happen when storing/querying
|
|
task results using the the database backend.
|
|
task results using the the database backend.
|
|
@@ -1194,17 +1333,19 @@ DOCUMENTATION
|
|
* Now has console script entry points in the setup.py file, so tools like
|
|
* Now has console script entry points in the setup.py file, so tools like
|
|
buildout will correctly install the programs celerybin and celeryinit.
|
|
buildout will correctly install the programs celerybin and celeryinit.
|
|
|
|
|
|
-0.8.2 [2009-11-20 03:40 P.M CEST]
|
|
|
|
----------------------------------
|
|
|
|
|
|
+0.8.2
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-11-20 03:40 P.M CEST
|
|
|
|
|
|
* QOS Prefetch count was not applied properly, as it was set for every message
|
|
* QOS Prefetch count was not applied properly, as it was set for every message
|
|
received (which apparently behaves like, "receive one more"), instead of only
|
|
received (which apparently behaves like, "receive one more"), instead of only
|
|
set when our wanted value cahnged.
|
|
set when our wanted value cahnged.
|
|
|
|
|
|
-0.8.1 [2009-11-16 05:21 P.M CEST]
|
|
|
|
|
|
+0.8.1
|
|
=================================
|
|
=================================
|
|
|
|
+:release-date: 2009-11-16 05:21 P.M CEST
|
|
|
|
|
|
-VERY IMPORTANT NOTE
|
|
|
|
|
|
+Very important note
|
|
-------------------
|
|
-------------------
|
|
|
|
|
|
This release (with carrot 0.8.0) enables AMQP QoS (quality of service), which
|
|
This release (with carrot 0.8.0) enables AMQP QoS (quality of service), which
|
|
@@ -1212,7 +1353,7 @@ means the workers will only receive as many messages as it can handle at a
|
|
time. As with any release, you should test this version upgrade on your
|
|
time. As with any release, you should test this version upgrade on your
|
|
development servers before rolling it out to production!
|
|
development servers before rolling it out to production!
|
|
|
|
|
|
-IMPORTANT CHANGES
|
|
|
|
|
|
+Important changes
|
|
-----------------
|
|
-----------------
|
|
|
|
|
|
* If you're using Python < 2.6 and you use the multiprocessing backport, then
|
|
* If you're using Python < 2.6 and you use the multiprocessing backport, then
|
|
@@ -1249,7 +1390,7 @@ IMPORTANT CHANGES
|
|
|
|
|
|
* New version requirement for carrot: 0.8.0
|
|
* New version requirement for carrot: 0.8.0
|
|
|
|
|
|
-CHANGES
|
|
|
|
|
|
+Changes
|
|
-------
|
|
-------
|
|
|
|
|
|
* Incorporated the multiprocessing backport patch that fixes the
|
|
* Incorporated the multiprocessing backport patch that fixes the
|
|
@@ -1280,10 +1421,11 @@ CHANGES
|
|
|
|
|
|
* SQLite no concurrency limit should only be effective if the db backend is used.
|
|
* SQLite no concurrency limit should only be effective if the db backend is used.
|
|
|
|
|
|
-0.8.0 [2009-09-22 03:06 P.M CEST]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.8.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-09-22 03:06 P.M CEST
|
|
|
|
|
|
-BACKWARD INCOMPATIBLE CHANGES
|
|
|
|
|
|
+Backward incompatible changes
|
|
-----------------------------
|
|
-----------------------------
|
|
|
|
|
|
* Add traceback to result value on failure.
|
|
* Add traceback to result value on failure.
|
|
@@ -1302,7 +1444,7 @@ BACKWARD INCOMPATIBLE CHANGES
|
|
|
|
|
|
* Now depends on python-daemon 1.4.8
|
|
* Now depends on python-daemon 1.4.8
|
|
|
|
|
|
-IMPORTANT CHANGES
|
|
|
|
|
|
+Important changes
|
|
-----------------
|
|
-----------------
|
|
|
|
|
|
* Celery can now be used in pure Python (outside of a Django project).
|
|
* Celery can now be used in pure Python (outside of a Django project).
|
|
@@ -1365,7 +1507,7 @@ IMPORTANT CHANGES
|
|
* AMQP_CONNECTION_MAX_RETRIES.
|
|
* AMQP_CONNECTION_MAX_RETRIES.
|
|
Maximum number of restarts before we give up. Default: ``100``.
|
|
Maximum number of restarts before we give up. Default: ``100``.
|
|
|
|
|
|
-NEWS
|
|
|
|
|
|
+News
|
|
----
|
|
----
|
|
|
|
|
|
* Fix an incompatibility between python-daemon and multiprocessing,
|
|
* Fix an incompatibility between python-daemon and multiprocessing,
|
|
@@ -1414,10 +1556,11 @@ NEWS
|
|
* Fix documentation typo ``.. import map`` -> ``.. import dmap``.
|
|
* Fix documentation typo ``.. import map`` -> ``.. import dmap``.
|
|
Thanks mikedizon
|
|
Thanks mikedizon
|
|
|
|
|
|
-0.6.0 [2009-08-07 06:54 A.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.6.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-08-07 06:54 A.M CET
|
|
|
|
|
|
-IMPORTANT CHANGES
|
|
|
|
|
|
+Important changes
|
|
-----------------
|
|
-----------------
|
|
|
|
|
|
* Fixed a bug where tasks raising unpickleable exceptions crashed pool
|
|
* Fixed a bug where tasks raising unpickleable exceptions crashed pool
|
|
@@ -1436,7 +1579,7 @@ IMPORTANT CHANGES
|
|
we didn't do this before. Some documentation is updated to not manually
|
|
we didn't do this before. Some documentation is updated to not manually
|
|
specify a task name.
|
|
specify a task name.
|
|
|
|
|
|
-NEWS
|
|
|
|
|
|
+News
|
|
----
|
|
----
|
|
|
|
|
|
* Tested with Django 1.1
|
|
* Tested with Django 1.1
|
|
@@ -1488,14 +1631,16 @@ NEWS
|
|
|
|
|
|
* Convert statistics data to unicode for use as kwargs. Thanks Lucy!
|
|
* Convert statistics data to unicode for use as kwargs. Thanks Lucy!
|
|
|
|
|
|
-0.4.1 [2009-07-02 01:42 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.4.1
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-07-02 01:42 P.M CET
|
|
|
|
|
|
* Fixed a bug with parsing the message options (``mandatory``,
|
|
* Fixed a bug with parsing the message options (``mandatory``,
|
|
``routing_key``, ``priority``, ``immediate``)
|
|
``routing_key``, ``priority``, ``immediate``)
|
|
|
|
|
|
-0.4.0 [2009-07-01 07:29 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.4.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-07-01 07:29 P.M CET
|
|
|
|
|
|
* Adds eager execution. ``celery.execute.apply``|``Task.apply`` executes the
|
|
* Adds eager execution. ``celery.execute.apply``|``Task.apply`` executes the
|
|
function blocking until the task is done, for API compatiblity it
|
|
function blocking until the task is done, for API compatiblity it
|
|
@@ -1507,8 +1652,9 @@ NEWS
|
|
|
|
|
|
* 99% coverage using python ``coverage`` 3.0.
|
|
* 99% coverage using python ``coverage`` 3.0.
|
|
|
|
|
|
-0.3.20 [2009-06-25 08:42 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.3.20
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-06-25 08:42 P.M CET
|
|
|
|
|
|
* New arguments to ``apply_async`` (the advanced version of
|
|
* New arguments to ``apply_async`` (the advanced version of
|
|
``delay_task``), ``countdown`` and ``eta``;
|
|
``delay_task``), ``countdown`` and ``eta``;
|
|
@@ -1582,8 +1728,9 @@ NEWS
|
|
Built-in tasks: ``PingTask``, ``DeleteExpiredTaskMetaTask``.
|
|
Built-in tasks: ``PingTask``, ``DeleteExpiredTaskMetaTask``.
|
|
|
|
|
|
|
|
|
|
-0.3.7 [2008-06-16 11:41 P.M CET]
|
|
|
|
---------------------------------
|
|
|
|
|
|
+0.3.7
|
|
|
|
+=====
|
|
|
|
+:release-date: 2008-06-16 11:41 P.M CET
|
|
|
|
|
|
* **IMPORTANT** Now uses AMQP's ``basic.consume`` instead of
|
|
* **IMPORTANT** Now uses AMQP's ``basic.consume`` instead of
|
|
``basic.get``. This means we're no longer polling the broker for
|
|
``basic.get``. This means we're no longer polling the broker for
|
|
@@ -1645,30 +1792,34 @@ NEWS
|
|
* Tyrant Backend: Now re-establishes the connection for every task
|
|
* Tyrant Backend: Now re-establishes the connection for every task
|
|
executed.
|
|
executed.
|
|
|
|
|
|
-0.3.3 [2009-06-08 01:07 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.3.3
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-06-08 01:07 P.M CET
|
|
|
|
|
|
* The ``PeriodicWorkController`` now sleeps for 1 second between checking
|
|
* The ``PeriodicWorkController`` now sleeps for 1 second between checking
|
|
for periodic tasks to execute.
|
|
for periodic tasks to execute.
|
|
|
|
|
|
-0.3.2 [2009-06-08 01:07 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.3.2
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-06-08 01:07 P.M CET
|
|
|
|
|
|
* celeryd: Added option ``--discard``: Discard (delete!) all waiting
|
|
* celeryd: Added option ``--discard``: Discard (delete!) all waiting
|
|
messages in the queue.
|
|
messages in the queue.
|
|
|
|
|
|
* celeryd: The ``--wakeup-after`` option was not handled as a float.
|
|
* celeryd: The ``--wakeup-after`` option was not handled as a float.
|
|
|
|
|
|
-0.3.1 [2009-06-08 01:07 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.3.1
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-06-08 01:07 P.M CET
|
|
|
|
|
|
* The `PeriodicTask`` worker is now running in its own thread instead
|
|
* The `PeriodicTask`` worker is now running in its own thread instead
|
|
of blocking the ``TaskController`` loop.
|
|
of blocking the ``TaskController`` loop.
|
|
|
|
|
|
* Default ``QUEUE_WAKEUP_AFTER`` has been lowered to ``0.1`` (was ``0.3``)
|
|
* Default ``QUEUE_WAKEUP_AFTER`` has been lowered to ``0.1`` (was ``0.3``)
|
|
|
|
|
|
-0.3.0 [2009-06-08 12:41 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.3.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-06-08 12:41 P.M CET
|
|
|
|
|
|
**NOTE** This is a development version, for the stable release, please
|
|
**NOTE** This is a development version, for the stable release, please
|
|
see versions 0.2.x.
|
|
see versions 0.2.x.
|
|
@@ -1741,8 +1892,9 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
* The pool algorithm has been refactored for greater performance and
|
|
* The pool algorithm has been refactored for greater performance and
|
|
stability.
|
|
stability.
|
|
|
|
|
|
-0.2.0 [2009-05-20 05:14 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.2.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-05-20 05:14 P.M CET
|
|
|
|
|
|
* Final release of 0.2.0
|
|
* Final release of 0.2.0
|
|
|
|
|
|
@@ -1751,21 +1903,24 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
* Fixes some syntax errors related to fetching results
|
|
* Fixes some syntax errors related to fetching results
|
|
from the database backend.
|
|
from the database backend.
|
|
|
|
|
|
-0.2.0-pre3 [2009-05-20 05:14 P.M CET]
|
|
|
|
-=====================================
|
|
|
|
|
|
+0.2.0-pre3
|
|
|
|
+==========
|
|
|
|
+:release-date: 2009-05-20 05:14 P.M CET
|
|
|
|
|
|
* *Internal release*. Improved handling of unpickled exceptions,
|
|
* *Internal release*. Improved handling of unpickled exceptions,
|
|
``get_result`` now tries to recreate something looking like the
|
|
``get_result`` now tries to recreate something looking like the
|
|
original exception.
|
|
original exception.
|
|
|
|
|
|
-0.2.0-pre2 [2009-05-20 01:56 P.M CET]
|
|
|
|
-=====================================
|
|
|
|
|
|
+0.2.0-pre2
|
|
|
|
+==========
|
|
|
|
+:release-date: 2009-05-20 01:56 P.M CET
|
|
|
|
|
|
* Now handles unpickleable exceptions (like the dynimically generated
|
|
* Now handles unpickleable exceptions (like the dynimically generated
|
|
subclasses of ``django.core.exception.MultipleObjectsReturned``).
|
|
subclasses of ``django.core.exception.MultipleObjectsReturned``).
|
|
|
|
|
|
-0.2.0-pre1 [2009-05-20 12:33 P.M CET]
|
|
|
|
-=====================================
|
|
|
|
|
|
+0.2.0-pre1
|
|
|
|
+==========
|
|
|
|
+:release-date: 2009-05-20 12:33 P.M CET
|
|
|
|
|
|
* It's getting quite stable, with a lot of new features, so bump
|
|
* It's getting quite stable, with a lot of new features, so bump
|
|
version to 0.2. This is a pre-release.
|
|
version to 0.2. This is a pre-release.
|
|
@@ -1774,21 +1929,24 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
been removed. Use ``celery.backends.default_backend.mark_as_read()``,
|
|
been removed. Use ``celery.backends.default_backend.mark_as_read()``,
|
|
and ``celery.backends.default_backend.mark_as_failure()`` instead.
|
|
and ``celery.backends.default_backend.mark_as_failure()`` instead.
|
|
|
|
|
|
-0.1.15 [2009-05-19 04:13 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.15
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-19 04:13 P.M CET
|
|
|
|
|
|
* The celery daemon was leaking AMQP connections, this should be fixed,
|
|
* The celery daemon was leaking AMQP connections, this should be fixed,
|
|
if you have any problems with too many files open (like ``emfile``
|
|
if you have any problems with too many files open (like ``emfile``
|
|
errors in ``rabbit.log``, please contact us!
|
|
errors in ``rabbit.log``, please contact us!
|
|
|
|
|
|
-0.1.14 [2009-05-19 01:08 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.14
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-19 01:08 P.M CET
|
|
|
|
|
|
* Fixed a syntax error in the ``TaskSet`` class. (No such variable
|
|
* Fixed a syntax error in the ``TaskSet`` class. (No such variable
|
|
``TimeOutError``).
|
|
``TimeOutError``).
|
|
|
|
|
|
-0.1.13 [2009-05-19 12:36 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.13
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-19 12:36 P.M CET
|
|
|
|
|
|
* Forgot to add ``yadayada`` to install requirements.
|
|
* Forgot to add ``yadayada`` to install requirements.
|
|
|
|
|
|
@@ -1808,8 +1966,9 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
|
|
|
|
and the result will be in ``docs/.build/html``.
|
|
and the result will be in ``docs/.build/html``.
|
|
|
|
|
|
-0.1.12 [2009-05-18 04:38 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.12
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-18 04:38 P.M CET
|
|
|
|
|
|
* ``delay_task()`` etc. now returns ``celery.task.AsyncResult`` object,
|
|
* ``delay_task()`` etc. now returns ``celery.task.AsyncResult`` object,
|
|
which lets you check the result and any failure that might have
|
|
which lets you check the result and any failure that might have
|
|
@@ -1846,14 +2005,16 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server.
|
|
TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server.
|
|
TT_PORT = 6657; # Port of the Tokyo Tyrant server.
|
|
TT_PORT = 6657; # Port of the Tokyo Tyrant server.
|
|
|
|
|
|
-0.1.11 [2009-05-12 02:08 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.11
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-12 02:08 P.M CET
|
|
|
|
|
|
* The logging system was leaking file descriptors, resulting in
|
|
* The logging system was leaking file descriptors, resulting in
|
|
servers stopping with the EMFILES (too many open files) error. (fixed)
|
|
servers stopping with the EMFILES (too many open files) error. (fixed)
|
|
|
|
|
|
-0.1.10 [2009-05-11 12:46 P.M CET]
|
|
|
|
-=================================
|
|
|
|
|
|
+0.1.10
|
|
|
|
+======
|
|
|
|
+:release-date: 2009-05-11 12:46 P.M CET
|
|
|
|
|
|
* Tasks now supports both positional arguments and keyword arguments.
|
|
* Tasks now supports both positional arguments and keyword arguments.
|
|
|
|
|
|
@@ -1861,16 +2022,18 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
|
|
|
|
* The daemon now tries to reconnect if the connection is lost.
|
|
* The daemon now tries to reconnect if the connection is lost.
|
|
|
|
|
|
-0.1.8 [2009-05-07 12:27 P.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.1.8
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-05-07 12:27 P.M CET
|
|
|
|
|
|
* Better test coverage
|
|
* Better test coverage
|
|
* More documentation
|
|
* More documentation
|
|
* celeryd doesn't emit ``Queue is empty`` message if
|
|
* celeryd doesn't emit ``Queue is empty`` message if
|
|
``settings.CELERYD_EMPTY_MSG_EMIT_EVERY`` is 0.
|
|
``settings.CELERYD_EMPTY_MSG_EMIT_EVERY`` is 0.
|
|
|
|
|
|
-0.1.7 [2009-04-30 1:50 P.M CET]
|
|
|
|
-===============================
|
|
|
|
|
|
+0.1.7
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-04-30 1:50 P.M CET
|
|
|
|
|
|
* Added some unittests
|
|
* Added some unittests
|
|
|
|
|
|
@@ -1884,8 +2047,9 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
``settings.CELERY_AMQP_EXCHANGE``, ``settings.CELERY_AMQP_ROUTING_KEY``,
|
|
``settings.CELERY_AMQP_EXCHANGE``, ``settings.CELERY_AMQP_ROUTING_KEY``,
|
|
and ``settings.CELERY_AMQP_CONSUMER_QUEUE``.
|
|
and ``settings.CELERY_AMQP_CONSUMER_QUEUE``.
|
|
|
|
|
|
-0.1.6 [2009-04-28 2:13 P.M CET]
|
|
|
|
-===============================
|
|
|
|
|
|
+0.1.6
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-04-28 2:13 P.M CET
|
|
|
|
|
|
* Introducing ``TaskSet``. A set of subtasks is executed and you can
|
|
* Introducing ``TaskSet``. A set of subtasks is executed and you can
|
|
find out how many, or if all them, are done (excellent for progress
|
|
find out how many, or if all them, are done (excellent for progress
|
|
@@ -1927,7 +2091,8 @@ arguments, so be sure to flush your task queue before you upgrade.
|
|
* Project changed name from ``crunchy`` to ``celery``. The details of
|
|
* Project changed name from ``crunchy`` to ``celery``. The details of
|
|
the name change request is in ``docs/name_change_request.txt``.
|
|
the name change request is in ``docs/name_change_request.txt``.
|
|
|
|
|
|
-0.1.0 [2009-04-24 11:28 A.M CET]
|
|
|
|
-================================
|
|
|
|
|
|
+0.1.0
|
|
|
|
+=====
|
|
|
|
+:release-date: 2009-04-24 11:28 A.M CET
|
|
|
|
|
|
* Initial release
|
|
* Initial release
|