| 
					
				 | 
			
			
				@@ -25,7 +25,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _v210-important: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Important notes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Important Notes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 --------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Celery is now following the versioning semantics defined by `semver`_. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -41,11 +41,27 @@ Important notes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _`semver`: http://semver.org 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _`Wiki: Release Cycle`: http://wiki.github.com/ask/celery/release-cycle. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Now depends on Carrot 0.10.6. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* No longer depends on SQLAlchemy, this needs to be installed separately 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if the database backend is used (does not apply to users of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``django-celery``). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _v210-news: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ---- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Added support for expiration of AMQP results (requires RabbitMQ 2.1.0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The new configuration option ``CELERY_AMQP_TASK_RESULT_EXPIRES`` sets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    the expiry time in seconds (can be int or float): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. code-block:: python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CELERY_AMQP_TASK_RESULT_EXPIRES = 30 * 60  # 30 mins 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CELERY_AMQP_TASK_RESULT_EXPIRES = 0.80     # 800 ms 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryev: Event Snapshots 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     If enabled, celeryd can send messages every time something 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,6 +128,41 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     It deletes successful tasks after 1 day, failed tasks after 3 days, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     and tasks in other states after 5 days. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. seealso:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :ref:`monitoring-django-admin` and :ref:`monitoring-snapshots`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd: Now emits a warning if there is already a worker node using the same 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name running on the current virtual host. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* :func:`celery.task.control.broadcast`: Added callback argument, this can be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  used to process replies immediately as they arrive. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* New remote control command: ``diagnose``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Verifies that the pool workers are able to accept and perform tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. warning:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        This is only reliable as long as the worker node is not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        processing tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryctl: New command-line utility to manage and inspect worker nodes, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  and also apply tasks and inspect the results of tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. seealso:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        The :ref:`monitoring-celeryctl` section in the :ref:`guide`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Some examples:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl apply tasks.add -a '[2, 2]' --countdown=10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl inspect active 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl inspect registered_tasks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl inspect scheduled 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl inspect --help 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ celeryctl apply --help 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Added the ability to set an expiry date and time for tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Example:: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -168,6 +219,112 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             stdouts = logging.getLogger("mystdoutslogger") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             log.redirect_stdouts_to_logger(stdouts, loglevel=logging.WARNING) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd: Added command-line option ``-I|--include``: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Additional (task) modules to be imported 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* :func:`celery.messaging.establish_connection`: Ability to override defaults 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  used using kwarg "defaults". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd: Now uses ``multiprocessing.freeze_support()`` so it should work 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  with py2exe and similar tools. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd: Now includes more metadata for the STARTED state: pid and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  hostname of the worker that started the task. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #181 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* subtask: Merge addititional keyword args to ``subtask()`` into task kwargs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    e.g: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> s = subtask((1, 2), {"foo": "bar"}, baz=1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> s.args 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (1, 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> s.kwargs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {"foo": "bar", "baz": 1} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #182. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* AMQP result backend: Sending of results are now retried if the connection 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  is down. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* AMQP result backend: ``result.get()``: Wait for next state if state is not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  in :data:`~celery.states.READY_STATES`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* TaskSetResult now supports ``__getitem__`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> res = TaskSet(tasks).apply_async() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> res[0].get() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Added ``Task.send_error_emails`` + ``Task.error_whitelist``, so these can 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  be configured per task instead of just globally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Added ``Task.store_errors_even_if_ignored``, so it can be changed per Task, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  not just globally. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The crontab schedule no longer wakes up every second, but implements 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``remaining_estimate``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd:  Store FAILURE result if the ``WorkerLostError`` exception occurs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (worker process disappeared). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* celeryd: Store FAILURE result if one of the ``*TimeLimitExceeded`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  exceptions occurs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Refactored the periodic task responsible for cleaning up results. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * The backend cleanup task is now only added to the schedule if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ``CELERY_TASK_RESULT_EXPIRES`` is set. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * If the schedule already contains a periodic task named 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "celery.backend_cleanup" it won't change it, so the behavior of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      backend cleanup task can be easily changed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * The task is now run by every day at 4:00 AM, instead of every day since 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fist run (using crontab schedule instead of run_every) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * Renamed ``celery.task.builtins.DeleteExpiredTaskMetaTask`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        -> :class:`celery.task.builtins.backend_cleanup` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * The task itself has been renamed from "celery.delete_expired_task_meta" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      to "celery.backend_cleanup" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #134. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Implemented ``AsyncResult.forget`` for sqla/cache/redis/tyrant backends. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (Forget and remove task result). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #184. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*    Added ``Task.update_state(task_id, state, meta)``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    as a shortcut to ``task.backend.store_result(task_id, meta, state)``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The backend interface is "private" and the terminology outdated, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    so better to move this to :class:`~celery.task.base.Task` so it can be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* timer2: Set ``self.running=False`` in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :meth:`~celery.utils.timer2.Timer.stop` so it won't try to join again on 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  subsequent calls to ``stop()``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Log colors are now disabled by default on Windows. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* ``celery.platform`` renamed to :mod:`celery.platforms`, so it doesn't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  collide with the built-in :mod:`platform` module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Exceptions occuring in Mediator+Pool callbacks are now catched and logged 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  instead of taking down the worker. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Redis result backend: Now supports result expiration using the Redis 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``EXPIRE`` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* unittests: Don't leave threads running at teardown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryd: Task results shown in logs are now truncated to 46 chars. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``Task.__name__`` is now an alias to ``self.__class__.__name__``. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -175,7 +332,7 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``Task.retry``: Now raises :exc:`TypeError` if kwargs argument is empty. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/164 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #164. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * timedelta_seconds: Use ``timedelta.total_seconds`` if running on Python 2.7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -212,6 +369,16 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    See http://github.com/ask/celery/issues/issue/179 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Pool: Process timed out by TimeoutHandler must be joined by the Supervisor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  so don't remove it from self._pool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #192. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* TaskPublisher.delay_task now supports exchange argument, so exchange can be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  overriden when sending tasks in bulk using the same publisher 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #187. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Compat ``LoggerAdapter`` implementation: Now works for Python 2.4. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Also added support for several new methods: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -224,7 +391,17 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* tutorials/external moved to new section: "community" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Added User guide section: Monitoring 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Added user guide section: Periodic Tasks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Moved from `getting-started/periodic-tasks` and updated. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* tutorials/external moved to new section: "community". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* References has been added to all sections in the documentation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This makes it easier to link between documents. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _version-2.0.3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -254,7 +431,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * :class:`~celery.task.control.inspect`: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ``registered_tasks`` was requesting an invalid command because of a typo. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/170 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #170. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``CELERY_ROUTES``: Values defined in the route should now have precedence 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   over values defined in ``CELERY_QUEUES`` when merging the two. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -297,7 +474,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryev: Curses monitor no longer crashes if the terminal window 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   is resized. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/160 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #160. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryd: On OS X it is not possible to run ``os.exec*`` in a process 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   that is threaded. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -305,26 +482,26 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       This breaks the SIGHUP restart handler, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       and is now disabled on OS X, emitting a warning instead. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/152 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #152. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * :mod:`celery.execute.trace`: Properly handle ``raise(str)``, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   which is still allowed in Python 2.4. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/175 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #175. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Using urllib2 in a periodic task on OS X crashed because 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   of the proxy autodetection used in OS X. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     This is now fixed by using a workaround. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/143 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #143. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Debian init scripts: Commands should not run in a subshell 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/163 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #163. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Debian init scripts: Use abspath for celeryd to allow stat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/162 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #162. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _v203-documentation: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -337,11 +514,11 @@ Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Tasks Userguide: Added section on database transactions. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/169 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #169. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Routing Userguide: Fixed typo ``"feed": -> {"queue": "feeds"}``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/169 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #169. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Documented the default values for the ``CELERYD_CONCURRENCY`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   and ``CELERYD_PREFETCH_MULTIPLIER`` settings. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -370,7 +547,7 @@ Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Routes: When using the dict route syntax, the exchange for a task 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   could dissapear making the task unroutable. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/158 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #158. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Test suite now passing on Python 2.4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -403,12 +580,12 @@ Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryd: Now joins threads at shutdown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/152 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #152. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Test teardown: Don't use atexit but nose's ``teardown()`` functionality 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   instead. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/154 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #154. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Debian init script for celeryd: Stop now works correctly. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -420,7 +597,7 @@ Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CELERY_TASK_ERROR_WHITELIST = ('myapp.MalformedInputError') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/issue/153 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #153. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryd: Now handles overflow exceptions in ``time.mktime`` while parsing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   the ETA field. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -911,7 +1088,7 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     because it has applied prefetched tasks without having any pool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     processes available to immediately accept them. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/closed#issue/122 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #122. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * New built-in way to do task callbacks using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :class:`~celery.task.sets.subtask`. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -928,11 +1105,11 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * TaskSet failed() result was incorrect. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/closed#issue/132 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #132. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Now creates different loggers per task class. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/closed#issue/129 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #129. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Missing queue definitions are now created automatically. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1232,9 +1409,10 @@ Critical 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Fixed by making the pool worker processes ignore :const:`SIGINT`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Should not close the consumers before the pool is terminated, just cancel the consumers. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Should not close the consumers before the pool is terminated, just cancel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the consumers. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Issue #122. http://github.com/ask/celery/issues/issue/122 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #122. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Now depends on :mod:`billiard` >= 0.3.1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1264,12 +1442,12 @@ Changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * :func:`celery.execute.apply`: Pass logfile/loglevel arguments as task kwargs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Issue #110 http://github.com/ask/celery/issues/issue/110 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #110. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celery.execute.apply: Should return exception, not :class:`~celery.datastructures.ExceptionInfo` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   on error. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Issue #111 http://github.com/ask/celery/issues/issue/111 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #111. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Added new entries to the :doc:`FAQs <faq>`: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1343,9 +1521,11 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Late ack means the task messages will be acknowledged **after** the task 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     has been executed, not *just before*, which is the default behavior. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Note that this means the tasks may be executed twice if the worker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    crashes in the middle of their execution. Not acceptable for most 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    applications, but desirable for others. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        This means the tasks may be executed twice if the worker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        crashes in mid-execution. Not acceptable for most 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        applications, but desirable for others. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Added crontab-like scheduling to periodic tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1377,14 +1557,15 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         def every_hour(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print("Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Note that this a late addition. While we have unittests, due to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    nature of this feature we haven't been able to completely test this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    in practice, so consider this experimental. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        This a late addition. While we have unittests, due to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nature of this feature we haven't been able to completely test this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        in practice, so consider this experimental. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``TaskPool.apply_async``: Now supports the ``accept_callback`` argument. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``apply_async``: Now raises :exc:`ValueError` if task args is not a list, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  or kwargs is not a tuple (http://github.com/ask/celery/issues/issue/95). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  or kwargs is not a tuple (Issue #95). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``Task.max_retries`` can now be ``None``, which means it will retry forever. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1532,8 +1713,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     the mediator thread could block shutdown (and potentially block other 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     jobs from coming in). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Remote rate limits was not properly applied 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (http://github.com/ask/celery/issues/issue/98) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Remote rate limits was not properly applied (Issue #98). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Now handles exceptions with unicode messages correctly in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ``TaskRequest.on_failure``. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1569,7 +1749,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Unittests: Don't disable the django test database teardown, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   instead fixed the underlying issue which was caused by modifications 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to the ``DATABASE_NAME`` setting (http://github.com/ask/celery/issues/82). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  to the ``DATABASE_NAME`` setting (Issue #82). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Django Loader: New config ``CELERY_DB_REUSE_MAX`` (max number of tasks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   to reuse the same database connection) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1599,8 +1779,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Consider the competition for the first pool plug-in started! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Debian init scripts: Use ``-a`` not ``&&`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (http://github.com/ask/celery/issues/82). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Debian init scripts: Use ``-a`` not ``&&`` (Issue #82). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Debian init scripts: Now always preserves ``$CELERYD_OPTS`` from the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ``/etc/default/celeryd`` and ``/etc/default/celerybeat``. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1617,7 +1796,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   when trying to log that a task had been revoked. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * management.commands.camqadm: Fixed typo ``camqpadm`` -> ``camqadm`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (http://github.com/ask/celery/issues/83). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (Issue #83). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * PeriodicTask.delta_resolution: Was not working for days and hours, now fixed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   by rounding to the nearest day/hour. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1651,9 +1830,11 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     apply to your use case, you should be able to set the prefetch multiplier 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     to zero, without sacrificing performance. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Please note that a patch to :mod:`multiprocessing` is currently being 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    worked on, this patch would enable us to use a better solution, and is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    scheduled for inclusion in the ``2.0.0`` release. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        A patch to :mod:`multiprocessing` is currently being 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        worked on, this patch would enable us to use a better solution, and is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        scheduled for inclusion in the ``2.0.0`` release. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * celeryd now shutdowns cleanly when receving the ``TERM`` signal. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1675,9 +1856,10 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * ``celeryd`` now works on Windows again. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Note that if running with Django, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    you can't use ``project.settings`` as the settings module name, but the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    following should work:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. warning:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If you're using Celery with Django, you can't use ``project.settings`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        as the settings module name, but the following should work:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $ python manage.py celeryd --settings=settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1866,7 +2048,9 @@ Backward incompatible changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         def add(x, y): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return x + y 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See the User Guide: :doc:`userguide/tasks` for more information. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. seealso:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :ref:`guide-tasks` for more information about the task decorators. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The periodic task system has been rewritten to a centralized solution. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2253,16 +2437,22 @@ Backward incompatible changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ----------------------------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Add traceback to result value on failure. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	**NOTE** If you use the database backend you have to re-create the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	database table ``celery_taskmeta``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Contact the mailinglist or IRC channel listed in README for help 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	doing this. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If you use the database backend you have to re-create the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        database table ``celery_taskmeta``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Contact the :ref:`mailing-list` or :ref:`irc-channel` channel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for help doing this. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Database tables are now only created if the database backend is used, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	so if you change back to the database backend at some point, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	be sure to initialize tables (django: ``syncdb``, python: ``celeryinit``). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(Note: This is only the case when using Django 1.1 or higher) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  so if you change back to the database backend at some point, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  be sure to initialize tables (django: ``syncdb``, python: ``celeryinit``). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     This is only applies if using Django version 1.1 or higher. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Now depends on ``carrot`` version 0.6.0. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2278,10 +2468,7 @@ Important changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     This means celery is no longer Django specific. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     For more information see the FAQ entry 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    `Can I use celery without Django?`_. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    . _`Can I use celery without Django?`: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        http://ask.github.com/celery/faq.html#can-i-use-celery-without-django 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :ref:`faq-is-celery-for-django-only`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Celery now supports task retries. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2295,7 +2482,7 @@ Important changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     It uses messages to publish task return value and status. And it's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     incredibly fast! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    See http://github.com/ask/celery/issues/closed#issue/6 for more info! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    See issue #6 for more info! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * AMQP QoS (prefetch count) implemented: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2545,12 +2732,17 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   restarted if it crashes). To use this start celeryd with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ``--supervised`` option (or alternatively ``-S``). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* views.apply: View applying a task. Example:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* views.apply: View applying a task. Example 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        http://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=b 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    http://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=b 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  **NOTE** Use with caution, preferably not make this publicly 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  accessible without ensuring your code is safe! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. warning:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Use with caution! Do not expose this URL to the public 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        without first ensuring that your code is safe! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Refactored ``celery.task``. It's now split into three modules: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2672,8 +2864,10 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ===== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 :release-date: 2009-06-08 12:41 P.M CET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-**NOTE** This is a development version, for the stable release, please 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-see versions 0.2.x. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. warning:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This is a development version, for the stable release, please 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    see versions 0.2.x. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 **VERY IMPORTANT:** Pickle is now the encoder used for serializing task 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 arguments, so be sure to flush your task queue before you upgrade. 
			 |