Kaynağa Gözat

Updates Changelog

Ask Solem 13 yıl önce
ebeveyn
işleme
e49186a886
1 değiştirilmiş dosya ile 160 ekleme ve 37 silme
  1. 160 37
      Changelog

+ 160 - 37
Changelog

@@ -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