Browse Source

Updated changelog

Ask Solem 14 years ago
parent
commit
ce446f6558
1 changed files with 88 additions and 1 deletions
  1. 88 1
      Changelog

+ 88 - 1
Changelog

@@ -154,6 +154,11 @@ News
     In addition `retry`, and `retry_policy` keyword arguments have
     In addition `retry`, and `retry_policy` keyword arguments have
     been added to `Task.apply_async`.
     been added to `Task.apply_async`.
 
 
+    .. note::
+
+        Using the `retry` argument to `apply_async` requires you to
+        handle the publisher/connection manually.
+
 * Added support for message compression using the
 * Added support for message compression using the
   :setting:`CELERY_MESSAGE_COMPRESSION` setting, or the `compression` argument
   :setting:`CELERY_MESSAGE_COMPRESSION` setting, or the `compression` argument
   to `apply_async`.  This can also be set using routers.
   to `apply_async`.  This can also be set using routers.
@@ -167,9 +172,22 @@ News
     So far only supported by the AMQP result backend.  Support for memcached
     So far only supported by the AMQP result backend.  Support for memcached
     and Redis may be added later.
     and Redis may be added later.
 
 
-* `celerybeat`: Now has built-in daemonization support using the `--detach``
+* Worker process PID is now sent with the task-accepted event.
+
+* The start time reported by the multiprocessing worker process is now used
+  when calculating task duration for better accuracy.
+
+    Previously the time reported by the accept callback was used.
+
+* `celerybeat`: Now has built-in daemonization support using the `--detach`
    option.
    option.
 
 
+* `celeryev`: Now has built-in daemonization support using the `--detach`
+   option.
+
+* `TaskSet.apply_async`: Now supports custom publishers by using the
+  `publisher` argument.
+
 * Added :setting:`CELERY_SEND_TASK_SENT_EVENT` setting.
 * Added :setting:`CELERY_SEND_TASK_SENT_EVENT` setting.
 
 
     If enabled an event will be sent out with every task, so monitors can
     If enabled an event will be sent out with every task, so monitors can
@@ -184,6 +202,75 @@ News
 
 
         $ celeryd --config=celeryconfig.py --loader=myloader.Loader
         $ celeryd --config=celeryconfig.py --loader=myloader.Loader
 
 
+* Added signals: `beat_init` and `beat_embedded_init`
+
+    * :data:`celery.signals.beat_init`
+
+        Dispatched when :program:`celerybeat` starts (either standalone or
+        embedded).  Sender is the :class:`celery.beat.Service` instance.
+
+    * :data:`celery.signals.beat_embedded_init`
+
+        Dispatched in addition to the :data:`beat_init` signal when
+        :program:`celerybeat` is started as an embedded process.  Sender
+        is the :class:`celery.beat.Service` instance.
+
+
+v220-fixes:
+
+Fixes
+-----
+
+* AMQP Backend: Exceptions occurring while sending task results are now
+  propagated instead of silenced.
+
+    `celeryd` will then show the full traceback of these errors in the log.
+
+* AMQP Backend: No longer deletes the result queue after successful
+  poll, as this should be handled by the
+  :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES` setting instead.
+
+* Windows: celeryd: Show error if running with `-B` option.
+
+    Running celerybeat embedded is known not to work on Windows, so
+    users are encouraged to run celerybeat as a separate service instead.
+
+* Windows: Utilities no longer output ANSI color codes on Windows
+
+* camqadm: Now properly handles Ctrl+C by simply exiting instead of showing
+  confusing traceback.
+
+* Windows: All tests are now passing on Windows.
+
+* Remove bin/ directory, and `scripts` section from setup.py.
+
+    This means we now rely completely on setuptools entrypoints.
+
+.. v220-experimental:
+
+Experimental
+------------
+
+* :class:`PublisherPool`: Experimental pool of task publishers and
+  connections to be used with the `retry` argument to `apply_async`.
+
+  The example code below will re-use connections and channels, and
+  retry sending of the task message if the connection is lost.
+
+  .. code-block:: python
+
+    from celery import current_app
+
+    # Global pool
+    pool = current_app().amqp.PublisherPool(limit=10)
+
+    def my_view(request):
+        with pool.acquire() as publisher:
+            add.apply_async((2, 2), publisher=publisher, retry=True)
+
+
+
+
 .. _version-2.1.4:
 .. _version-2.1.4:
 
 
 2.1.4
 2.1.4