|  | @@ -35,9 +35,9 @@ Highlights
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .. topic:: Overview
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    - XXX1
 | 
	
		
			
				|  |  | +    - Now supports Django out of the box.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        YYY1
 | 
	
		
			
				|  |  | +        See the new tutorial at :ref:`django-first-steps`.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      - XXX2
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -177,8 +177,6 @@ In Other News
 | 
	
		
			
				|  |  |      - Namespaces must instantiate individual bootsteps, and
 | 
	
		
			
				|  |  |        there's no global registry of bootsteps.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  - New result backend with RPC semantics (``rpc``).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      This version of the ``amqp`` result backend is a very good alternative
 | 
	
	
		
			
				|  | @@ -337,6 +335,36 @@ In Other News
 | 
	
		
			
				|  |  |          pip install celery[zookeeper]
 | 
	
		
			
				|  |  |          pip install celery[sqlalchemy]
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- New settings :setting:`CELERY_EVENT_QUEUE_TTL` and
 | 
	
		
			
				|  |  | +  :setting:`CELERY_EVENT_QUEUE_EXPIRES`.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    These control when a monitors event queue is deleted, and for how long
 | 
	
		
			
				|  |  | +    events published to that queue will be visible.  Only supported on
 | 
	
		
			
				|  |  | +    RabbitMQ.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- New Couchbase result backend
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This result backend enables you to store and retrieve task results
 | 
	
		
			
				|  |  | +    using `Couchbase`_.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    See :ref:`conf-couchbase-result-backend` for more information
 | 
	
		
			
				|  |  | +    about configuring this result backend.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Contributed by Alain Masiero.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .. _`Couchbase`: http://www.couchbase.com
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- CentOS init script now supports starting multiple worker instances.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    See the script header for details.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Contributed by Jonathan Jordan.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- ``AsyncResult.iter_native`` now sets default interval parameter to 0.5
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Fix contributed by Idan Kamara
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  - Worker node names now consists of a name and a hostname separated by '@'.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      This change is to more easily identify multiple instances running
 | 
	
	
		
			
				|  | @@ -386,6 +414,29 @@ In Other News
 | 
	
		
			
				|  |  |      | ``%%``        | The character ``%``                   |
 | 
	
		
			
				|  |  |      +---------------+---------------------------------------+
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- Task decorator can now create "bound tasks"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This means that the function will be a method in the resulting
 | 
	
		
			
				|  |  | +    task class and so will have a ``self`` argument that can be used
 | 
	
		
			
				|  |  | +    to refer to the current task:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .. code-block:: python
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        @app.task(bind=True)
 | 
	
		
			
				|  |  | +        def send_twitter_status(self, oauth, tweet):
 | 
	
		
			
				|  |  | +            try:
 | 
	
		
			
				|  |  | +                twitter = Twitter(oauth)
 | 
	
		
			
				|  |  | +                twitter.update_status(tweet)
 | 
	
		
			
				|  |  | +            except (Twitter.FailWhaleError, Twitter.LoginError) as exc:
 | 
	
		
			
				|  |  | +                raise self.retry(exc=exc)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Using *bound tasks* is now the recommended approach whenever
 | 
	
		
			
				|  |  | +    you need access to the current task or request context.
 | 
	
		
			
				|  |  | +    Previously one would have to refer to the name of the task
 | 
	
		
			
				|  |  | +    instead (``send_twitter_status.retry``), but this could lead to problems
 | 
	
		
			
				|  |  | +    in some instances where the registered task was no longer the same
 | 
	
		
			
				|  |  | +    object.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  - Workers now synchronizes revoked tasks with its neighbors.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      This happens at startup and causes a one second startup delay
 | 
	
	
		
			
				|  | @@ -403,6 +454,40 @@ In Other News
 | 
	
		
			
				|  |  |      very rapidly. It will take several millennia before the clock overflows 64 bits,
 | 
	
		
			
				|  |  |      so this is not a concern.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- New setting :setting:`BROKER_LOGIN_METHOD`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This setting can be used to specify an alternate login method
 | 
	
		
			
				|  |  | +    for the AMQP transports.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Contributed by Adrien Guinet
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- The ``dump_conf`` remote control command will now give the string
 | 
	
		
			
				|  |  | +  representation for types that are not JSON compatible.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- Calling a subtask will now execute the task directly as documented.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    A misunderstanding led to ``Signature.__call__`` being an alias of
 | 
	
		
			
				|  |  | +    ``.delay`` but this does not conform to the calling API of ``Task`` which
 | 
	
		
			
				|  |  | +    should call the underlying task method.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This means that:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .. code-block:: python
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        @app.task
 | 
	
		
			
				|  |  | +        def add(x, y):
 | 
	
		
			
				|  |  | +            return x + y
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        add.s(2, 2)()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    does the same as calling the task directly:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .. code-block:: python
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        add(2, 2)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- Function `celery.security.setup_security` is now :func:`celery.setup_security`.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  - Message expires value is now forwarded at retry (Issue #980).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      The value is forwarded at is, so the expiry time will not change.
 | 
	
	
		
			
				|  | @@ -429,6 +514,18 @@ In Other News
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      Contributed by Chris Adams.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- ``events.State`` no longer crashes when it receives unknown event types.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- SQLAlchemy Result Backend: New :setting:`CELERY_RESULT_DB_TABLENAMES`
 | 
	
		
			
				|  |  | +  setting can be used to change the name of the database tables used.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Contributed by Ryan Petrello.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- A stress test suite for the Celery worker has been written.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This is located in the ``funtests/stress`` directory in the git
 | 
	
		
			
				|  |  | +    repository. There's a README file there to get you started.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  - The logger named ``celery.concurrency`` has been renamed to ``celery.pool``.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - New command line utility ``celery graph``
 | 
	
	
		
			
				|  | @@ -556,6 +653,9 @@ Scheduled Removals
 | 
	
		
			
				|  |  |      setting.  This is because function rarely establish connections directly,
 | 
	
		
			
				|  |  |      but instead acquire connections from the connection pool.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +- The ``Celery.with_default_connection`` method has been removed in favor
 | 
	
		
			
				|  |  | +  of ``with app.connection_or_acquire``.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  .. _v310-deprecations:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Deprecations
 | 
	
	
		
			
				|  | @@ -574,3 +674,26 @@ Fixes
 | 
	
		
			
				|  |  |  =====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  - XXX
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _v310-internal
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Internal changes
 | 
	
		
			
				|  |  | +================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- Module ``celery.task.trace`` has been renamed to :mod:`celery.app.trace`.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- Classes that no longer fall back to using the default app:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    - Result backends (:class:`celery.backends.base.BaseBackend`)
 | 
	
		
			
				|  |  | +    - :class:`celery.worker.WorkController`
 | 
	
		
			
				|  |  | +    - :class:`celery.worker.Consumer`
 | 
	
		
			
				|  |  | +    - :class:`celery.worker.job.Request`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This means that you have to pass a specific app when instantiating
 | 
	
		
			
				|  |  | +    these classes.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- ``EventDispatcher.copy_buffer`` renamed to ``EventDispatcher.extend_buffer``
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- Removed unused and never documented global instance
 | 
	
		
			
				|  |  | +  ``celery.events.state.state``.
 | 
	
		
			
				|  |  | +
 |