|
@@ -18,6 +18,22 @@
|
|
|
Important Notes
|
|
|
---------------
|
|
|
|
|
|
+* Now supports Python 3.
|
|
|
+
|
|
|
+* Fixed deadlock in worker process handling (Issue #496).
|
|
|
+
|
|
|
+ A deadlock could occur after spawning new child processes because
|
|
|
+ the logging library's mutex was not properly reset after fork.
|
|
|
+
|
|
|
+ The symptoms of this bug affecting would be that the worker simply
|
|
|
+ stops processing tasks, as none of the workers child processes
|
|
|
+ are functioning. There was a greater chance of this bug occurring
|
|
|
+ with ``maxtasksperchild`` or a time-limit enabled.
|
|
|
+
|
|
|
+ This is a workaround for http://bugs.python.org/issue6721#msg140215.
|
|
|
+
|
|
|
+ Fix contributed by Harm Verhagen.
|
|
|
+
|
|
|
* AMQP Result backend: Now expires results by default.
|
|
|
|
|
|
The default expiration value is now taken from the
|
|
@@ -33,9 +49,67 @@ Important Notes
|
|
|
|
|
|
CELERY_TASK_RESULT_EXPIRES = None
|
|
|
|
|
|
+* 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.
|
|
|
+
|
|
|
* The deprecated :func:`celery.loaders.setup_loader` function has been removed.
|
|
|
|
|
|
-* Deprecations
|
|
|
+* The :setting:`CELERY_TASK_ERROR_WHITELIST` setting has been replaced
|
|
|
+ by a more flexible approach (Issue #447).
|
|
|
+
|
|
|
+ The Mail sending logic is now available as ``Task.ErrorMail``.
|
|
|
+ The actual implementation is in :module:`celery.utils.mail`.
|
|
|
+
|
|
|
+ The error mail class can be sub-classed to gain complete control
|
|
|
+ of when error messages are sent, thus removing the need for a separate
|
|
|
+ white-list setting.
|
|
|
+
|
|
|
+ The :setting:`CELERY_TASK_ERROR_WHITELIST` setting has been deprecated,
|
|
|
+ and will be removed completely in version 3.0.
|
|
|
+
|
|
|
+* Additional Deprecations
|
|
|
|
|
|
The following functions has been deprecated and is scheduled for removal in
|
|
|
version 3.0:
|
|
@@ -71,53 +145,39 @@ News
|
|
|
|
|
|
* No longer depends on :mod:`pyparsing`.
|
|
|
|
|
|
-* 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::
|
|
|
+* CELERY_IMPORTS can now be a scalar value (Issue #485).
|
|
|
|
|
|
- amqp://guest:guest@localhost:5672//
|
|
|
+ It is too easy to forget to add the comma after the sole element of a
|
|
|
+ tuple, and this is something that often affects newcomers.
|
|
|
|
|
|
- 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.
|
|
|
+ The docs should probably use a list in examples, as using a tuple
|
|
|
+ for this doesn't even make sense. Nonetheless, there are many
|
|
|
+ tutorials out there using a tuple, and this change should be a help
|
|
|
+ to new users.
|
|
|
|
|
|
- .. note::
|
|
|
+ Suggested by jsaxon-cars.
|
|
|
|
|
|
- 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//
|
|
|
+* Fixed a memory leak when using the thread pool (Issue #486).
|
|
|
|
|
|
- and a virtual host of '' (empty) becomes::
|
|
|
+ Contributed by Kornelijus Survila.
|
|
|
|
|
|
- amqp://guest:guest@localhost:5672/
|
|
|
+* The statedb was not saved at exit.
|
|
|
|
|
|
- So the leading slash in the path component is **always required**.
|
|
|
+ This has now been fixed and it should again remember previously
|
|
|
+ revoked tasks when a ``--statedb`` is enabled.
|
|
|
|
|
|
- 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.
|
|
|
+* Adds :setting:`EMAIL_USE_TLS` to enable secure SMTP connections
|
|
|
+ (Issue #418).
|
|
|
|
|
|
- Also, programs now support the :option:`-b|--broker` option to specify
|
|
|
- a broker URL on the command line::
|
|
|
+ Contributed by Stefan Kjartansson.
|
|
|
|
|
|
- $ celeryd -b redis://localhost
|
|
|
+* Now handles missing fields in task messages as documented in the message
|
|
|
+ format documentation.
|
|
|
|
|
|
- $ celeryctl -b amqp://guest:guest@localhost//e
|
|
|
+ * Missing required field throws :exc:`InvalidTaskError`
|
|
|
+ * Missing args/kwargs is assumed empty.
|
|
|
|
|
|
- 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).
|
|
|
+ Contributed by Chris Chamberlin.
|
|
|
|
|
|
* The Cache, Cassandra, MongoDB, Redis and Tyrant backends now respects
|
|
|
the :setting:`CELERY_RESULT_SERIALIZER` setting (Issue #435).
|
|
@@ -125,19 +185,82 @@ News
|
|
|
This means that only the database (django/sqlalchemy) backends
|
|
|
currently does not support using custom serializers.
|
|
|
|
|
|
+ Contributed by Steeve Morin
|
|
|
+
|
|
|
* 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).
|
|
|
|
|
|
+ Contributed by Chris Adams.
|
|
|
+
|
|
|
* ``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.
|
|
|
+ which if enabled will disable the caching of SQLAlchemy sessions
|
|
|
+ (Issue #449).
|
|
|
+
|
|
|
+ Contributed by Leo Dirac.
|
|
|
|
|
|
* All result backends now implements ``__reduce__`` so that they can
|
|
|
be pickled (Issue #441).
|
|
|
|
|
|
+ Fix contributed by Remy Noel
|
|
|
+
|
|
|
+* New-style ``CELERY_REDIS_*`` settings now takes precedence over
|
|
|
+ the old ``REDIS_*`` configuration keys (Issue #508).
|
|
|
+
|
|
|
+ Fix contributed by Joshua Ginsberg
|
|
|
+
|
|
|
+* Generic celerybeat init script no longer sets `bash -e` (Issue #510).
|
|
|
+
|
|
|
+ Fix contributed by Roger Hu.
|
|
|
+
|
|
|
+* Documented that Chords do not work well with redis-server versions
|
|
|
+ before 2.2.
|
|
|
+
|
|
|
+ Contributed by Dan McGee.
|
|
|
+
|
|
|
+* The :setting:`CELERYBEAT_MAX_LOOP_INTERVAL` setting was not respected.
|
|
|
+
|
|
|
+* ``inspect.registered_tasks`` renamed to ``inspect.tasks`` for naming
|
|
|
+ consistency.
|
|
|
+
|
|
|
+ The previous name is still available as an alias.
|
|
|
+
|
|
|
+ Contributed by Mher Movsisyan
|
|
|
+
|
|
|
+* RHEL init script: Changed celeryd startup priority.
|
|
|
+
|
|
|
+ The default start / stop priorities for MySQL on RHEL are
|
|
|
+
|
|
|
+ # chkconfig: - 64 36
|
|
|
+
|
|
|
+ Therefore, if Celery is using a database as a broker / message store, it
|
|
|
+ should be started after the database is up and running, otherwise errors
|
|
|
+ will ensue. This commit changes the priority in the init script to
|
|
|
+
|
|
|
+ # chkconfig: - 85 15
|
|
|
+
|
|
|
+ which are the default recommended settings for 3-rd party applications
|
|
|
+ and assure that Celery will be started after the database service & shut
|
|
|
+ down before it terminates.
|
|
|
+
|
|
|
+ Contributed by Yury V. Zaytsev.
|
|
|
+
|
|
|
+* After deprecating 2.4 support we can now name modules correctly, since we
|
|
|
+ can take use of absolute imports.
|
|
|
+
|
|
|
+ Therefore the following internal modules have been renamed:
|
|
|
+
|
|
|
+ celery.concurrency.evlet -> celery.concurrency.eventlet
|
|
|
+ celery.concurrency.evg -> celery.concurrency.gevent
|
|
|
+
|
|
|
+* AUTHORS file is now sorted alphabetically.
|
|
|
+
|
|
|
+ Also, as you may have noticed the contributors of new features/fixes are
|
|
|
+ now mentioned in the Changelog.
|
|
|
+
|
|
|
.. _version-2.3.2:
|
|
|
|
|
|
2.3.2
|