| 
					
				 | 
			
			
				@@ -200,7 +200,7 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         @periodic_task(run_every=crontab(minutes=30)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         def every_hour(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print('Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print('Runs every hour on the clock (e.g., 1:30, 2:30, 3:30 etc.).') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     .. note:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         This a late addition. While we have unit tests, due to the 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -575,8 +575,8 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The ETA scheduler now deletes any revoked tasks it might encounter. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     As revokes aren't yet persistent, this is done to make sure the task 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    is revoked even though it's currently being hold because its ETA is e.g. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    a week into the future. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    is revoked even though, for example, it's currently being hold because 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    its ETA is a week into the future. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The `task_id` argument is now respected even if the task is executed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   eagerly (either using apply, or :setting:`CELERY_ALWAYS_EAGER`). 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -611,7 +611,7 @@ Fixes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Added `Task.delivery_mode` and the :setting:`CELERY_DEFAULT_DELIVERY_MODE` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   setting. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    These can be used to mark messages non-persistent (i.e. so they're 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    These can be used to mark messages non-persistent (i.e., so they're 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     lost if the broker is restarted). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Now have our own `ImproperlyConfigured` exception, instead of using the 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -757,8 +757,8 @@ Backward incompatible changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * The :envvar:`CELERY_LOADER` environment variable now needs loader class name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   in addition to module name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    E.g. where you previously had: `"celery.loaders.default"`, you now need 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    `"celery.loaders.default.Loader"`, using the previous syntax will result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    For example, where you previously had: `"celery.loaders.default"`, you now 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    need `"celery.loaders.default.Loader"`, using the previous syntax will result 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     in a `DeprecationWarning`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Detecting the loader is now lazy, and so isn't done when importing 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -844,16 +844,20 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Periodic tasks are now scheduled on the clock. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    I.e. `timedelta(hours=1)` means every hour at :00 minutes, not every 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    That is, `timedelta(hours=1)` means every hour at :00 minutes, not every 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     hour from the server starts. To revert to the previous behavior you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     can set `PeriodicTask.relative = True`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Now supports passing execute options to a TaskSets list of args, e.g.: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Now supports passing execute options to a TaskSets list of args. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    >>> ts = TaskSet(add, [([2, 2], {}, {'countdown': 1}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ...                   ([4, 4], {}, {'countdown': 2}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ...                   ([8, 8], {}, {'countdown': 3})]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    >>> ts.run() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. code-block:: pycon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> ts = TaskSet(add, [([2, 2], {}, {'countdown': 1}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ...                    ([4, 4], {}, {'countdown': 2}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ...                    ([8, 8], {}, {'countdown': 3})]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        >>> ts.run() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Got a 3x performance gain by setting the prefetch count to four times the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   concurrency, (from an average task round-trip of 0.1s to 0.03s!). 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1263,10 +1267,10 @@ Important changes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     goes away or stops responding, it is automatically replaced with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     a new one. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* Task.name is now automatically generated out of class module+name, e.g. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    `"djangotwitter.tasks.UpdateStatusesTask"`. Very convenient. No idea why 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    we didn't do this before. Some documentation is updated to not manually 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    specify a task name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Task.name is now automatically generated out of class module+name, for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  example `"djangotwitter.tasks.UpdateStatusesTask"`. Very convenient. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  No idea why we didn't do this before. Some documentation is updated to not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  manually specify a task name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. _v060-news: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1399,7 +1403,7 @@ News 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   by running `python manage.py celerystats`. See 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   `celery.monitoring` for more information. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* The Celery daemon can now be supervised (i.e. it is automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* The Celery daemon can now be supervised (i.e., it is automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   restarted if it crashes). To use this start the worker with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   --supervised` option (or alternatively `-S`). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1850,7 +1854,7 @@ arguments, so be sure to flush your task queue before you upgrade. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         http://mysite/celery/$task_id/done/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  this will return a JSON dictionary like e.g: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  this will return a JSON dictionary, for example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .. code-block:: json 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |