|  | @@ -5,6 +5,151 @@
 | 
	
		
			
				|  |  |  .. contents::
 | 
	
		
			
				|  |  |      :local:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +.. _version-2.4.0:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +2.4.0
 | 
	
		
			
				|  |  | +=====
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _v240-important:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Important Notes
 | 
	
		
			
				|  |  | +---------------
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The deprecated :func:`celery.loaders.setup_loader` function has been removed.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Deprecations
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    The following functions has been deprecated and is scheduled for removal in
 | 
	
		
			
				|  |  | +    version 3.0:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +    **Old function**                       **Alternative**
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +    `celery.loaders.current_loader`        `celery.current_app.loader`
 | 
	
		
			
				|  |  | +    `celery.loaders.load_settings`         `celery.current_app.conf`
 | 
	
		
			
				|  |  | +    `celery.execute.apply`                 `Task.apply`
 | 
	
		
			
				|  |  | +    `celery.execute.apply_async`           `Task.apply_async`
 | 
	
		
			
				|  |  | +    `celery.execute.delay_task`            `celery.execute.send_task`
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    The following settings has been deprecated and is scheduled for removal
 | 
	
		
			
				|  |  | +    in version 3.0:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +    **Old setting**                        **Alternative**
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +    `CELERYD_LOG_LEVEL`                    ``celeryd --loglevel=``
 | 
	
		
			
				|  |  | +    `CELERYD_LOG_FILE`                     ``celeryd --logfile=``
 | 
	
		
			
				|  |  | +    `CELERYBEAT_LOG_LEVEL`                 ``celerybeat --loglevel=``
 | 
	
		
			
				|  |  | +    `CELERYBEAT_LOG_FILE`                  ``celerybeat --logfile=``
 | 
	
		
			
				|  |  | +    `CELERYMON_LOG_LEVEL`                  ``celerymon --loglevel=``
 | 
	
		
			
				|  |  | +    `CELERYMON_LOG_FILE`                   ``celerymon --logfile=``
 | 
	
		
			
				|  |  | +    =====================================  ===================================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.. _v240-news:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +News
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Broker transports can be now be specified using URLs
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    The broker hostname can now be given as an URL instead, of the format::
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        transport://user:password@hostname:port/virtual_host
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    for example the default broker is written as::
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        amqp://guest:guest@localhost:5672//
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    Transport defaults to amqp, and is not required.
 | 
	
		
			
				|  |  | +    user, password, port and virtual_host is also not mandatory and
 | 
	
		
			
				|  |  | +    will default to the corresponding transport default.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .. note::
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Note that the path component (virtual_host) always starts with a
 | 
	
		
			
				|  |  | +        forward-slash.  This is necessary to distinguish between the virtual
 | 
	
		
			
				|  |  | +        host '' (empty) and '/', which are both acceptable virtual host names.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        A virtual host of '/' becomes:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            amqp://guest:guest@localhost:5672//
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        and a virtual host of '' (empty) becomes::
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            amqp://guest:guest@localhost:5672/
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        So the leading slash in the path component is **always required**.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +   In addition the :setting:`BROKER_URL` setting has been added as an alias
 | 
	
		
			
				|  |  | +   to ``BROKER_HOST``.  Any broker setting specified in both the URL and in
 | 
	
		
			
				|  |  | +   the configuration will be ignored, if a setting is not provided in the URL
 | 
	
		
			
				|  |  | +   then the value from the configuration will be used as default.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +   Also, programs now support the :option:`-b|--broker` option to specify
 | 
	
		
			
				|  |  | +   a broker URL on the command line::
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $ celeryd -b redis://localhost
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        $ celeryctl -b amqp://guest:guest@localhost//e
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    The environment variable :envvar:`CELERY_BROKER_URL` can also be used to
 | 
	
		
			
				|  |  | +    easily override the default broker used.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Adds :setting:`EMAIL_USE_TLS` to enable secure SMTP connections
 | 
	
		
			
				|  |  | +  (Issue #418).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The coloring of log messages didn't handle non-ASCII data well
 | 
	
		
			
				|  |  | +  (Issue #427).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The Cache, Cassandra, MongoDB, Redis and Tyrant backends now respects
 | 
	
		
			
				|  |  | +  the :setting:`CELERY_RESULT_SERIALIZER` setting (Issue #435).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This means that only the database (django/sqlalchemy) backends
 | 
	
		
			
				|  |  | +    currently does not support using custom serializers.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Logging calls no longer manually formats messages, but delegates
 | 
	
		
			
				|  |  | +  that to the logging system, so tools like Sentry can easier
 | 
	
		
			
				|  |  | +  work with the messages (Issue #445).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* ``Task.request`` now contains the current workers hostname (Issue #460).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* ``celeryd_multi`` now supports a ``stop_verify`` command to wait for
 | 
	
		
			
				|  |  | +  processes to shutdown.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* New setting :setting:`CELERY_RESULT_DB_SHORT_LIVED_SESSIONS` added,
 | 
	
		
			
				|  |  | +  which if enabled will disable the caching of SQLAlchemy sessions.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Fixes
 | 
	
		
			
				|  |  | +-----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Fixes case where the worker could become unresponsive because of tasks
 | 
	
		
			
				|  |  | +  exceeding the hard time limit.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Eventlet no longer crashes if autoscale is enabled.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    growing and shrinking eventlet pools is still not supported.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* [Windows] the multiprocessing pool tried to import ``os.kill``
 | 
	
		
			
				|  |  | +  even though this is not available there (Issue #450).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* `purge/discard_all` was not working correctly (Issue #455).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Retries will no longer be performed when tasks are called directly
 | 
	
		
			
				|  |  | +  (using ``__call__``).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +   Instead the exception passed to ``retry`` will be re-raised.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* All result backends now implements ``__reduce__`` so that they can
 | 
	
		
			
				|  |  | +  be pickled (Issue #441).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The ``task-sent`` event was missing from the event reference.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* ``ResultSet.iterate`` now returns results as they finish (Issue #459).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    This was not the case previously, even though the documentation
 | 
	
		
			
				|  |  | +    states this was the expected behavior.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  .. _version-2.3.1:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  2.3.1
 |