Browse Source

Bumps version to 3.0.10 and updates Changelog

Ask Solem 12 years ago
parent
commit
368abf264c
5 changed files with 74 additions and 58 deletions
  1. 42 11
      Changelog
  2. 1 1
      README.rst
  3. 1 1
      celery/__init__.py
  4. 1 1
      docs/includes/introduction.txt
  5. 29 44
      docs/userguide/periodic-tasks.rst

+ 42 - 11
Changelog

@@ -13,7 +13,7 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
 
 
 3.0.10
 3.0.10
 ======
 ======
-:release-date: TBA
+:release-date: 2012-09-20 05:30 P.M BST
 
 
 - Now depends on kombu 2.4.7
 - Now depends on kombu 2.4.7
 
 
@@ -28,7 +28,7 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
     - Billiard now installs even if the C extension cannot be built.
     - Billiard now installs even if the C extension cannot be built.
 
 
         It's still recommended to build the C extension if you are using
         It's still recommended to build the C extension if you are using
-        a transport other than rabbitmq/redis (or use force_execv for some
+        a transport other than rabbitmq/redis (or use forced execv for some
         other reason).
         other reason).
 
 
     - Pool now sets a ``current_process().index`` attribute that can be used to create
     - Pool now sets a ``current_process().index`` attribute that can be used to create
@@ -37,7 +37,9 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
 - Canvas: chord/group/chain no longer modifies the state when called
 - Canvas: chord/group/chain no longer modifies the state when called
 
 
     Previously calling a chord/group/chain would modify the ids of subtasks
     Previously calling a chord/group/chain would modify the ids of subtasks
-    so that::
+    so that:
+
+    .. code-block:: python
 
 
         >>> c = chord([add.s(2, 2), add.s(4, 4)], xsum.s())
         >>> c = chord([add.s(2, 2), add.s(4, 4)], xsum.s())
         >>> c()
         >>> c()
@@ -47,23 +49,37 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
     previous invocation.  This is now fixed, so that calling a subtask
     previous invocation.  This is now fixed, so that calling a subtask
     won't mutate any options.
     won't mutate any options.
 
 
-- Canvas: Chaining a chord to another task now works.
+- Canvas: Chaining a chord to another task now works (Issue #965).
 
 
 - Worker: Fixed a bug where the request stack could be corrupted if
 - Worker: Fixed a bug where the request stack could be corrupted if
   relative imports are used.
   relative imports are used.
 
 
     Problem usually manifested itself as an exception while trying to
     Problem usually manifested itself as an exception while trying to
-    send a failed task result (NoneType does not have id attribute).
+    send a failed task result (``NoneType does not have id attribute``).
 
 
     Fix contributed by Sam Cooke.
     Fix contributed by Sam Cooke.
 
 
+- Tasks can now raise :exc:`~celery.exceptions.Ignore` to skip updating states
+  or events after return.
+
+    Example:
+
+    .. code-block:: python
+
+        from celery.exceptions import Ignore
+
+        @task
+        def custom_revokes():
+            if redis.sismember('tasks.revoked', custom_revokes.request.id):
+                raise Ignore()
+
 - The worker now makes sure the request/task stacks are not modified
 - The worker now makes sure the request/task stacks are not modified
   by the initial ``Task.__call__``.
   by the initial ``Task.__call__``.
 
 
     This would previously be a problem if a custom task class defined
     This would previously be a problem if a custom task class defined
     ``__call__`` and also called ``super()``.
     ``__call__`` and also called ``super()``.
 
 
-- Because of many bugs the fast local optimization has been disabled,
+- Because of problems the fast local optimization has been disabled,
   and can only be enabled by setting the :envvar:`USE_FAST_LOCALS` attribute.
   and can only be enabled by setting the :envvar:`USE_FAST_LOCALS` attribute.
 
 
 - Worker: Now sets a default socket timeout of 5 seconds at shutdown
 - Worker: Now sets a default socket timeout of 5 seconds at shutdown
@@ -71,7 +87,7 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
 
 
 - More fixes related to late eventlet/gevent patching.
 - More fixes related to late eventlet/gevent patching.
 
 
-- Documentation for the settings out of sync with reality:
+- Documentation for settings out of sync with reality:
 
 
     - :setting:`CELERY_TASK_PUBLISH_RETRY`
     - :setting:`CELERY_TASK_PUBLISH_RETRY`
 
 
@@ -87,9 +103,7 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
 
 
     Fix contributed by Matt Long.
     Fix contributed by Matt Long.
 
 
-- Worker: Log messages when connection established and lost have been improved
-  so that they are more useful when used with the upcoming multiple broker
-  hostlist for failover that is coming in the next Kombu version.
+- Worker: Log messages when connection established and lost have been improved.
 
 
 - The repr of a crontab schedule value of '0' should be '*'  (Issue #972).
 - The repr of a crontab schedule value of '0' should be '*'  (Issue #972).
 
 
@@ -98,7 +112,24 @@ If you're looking for versions prior to 3.x you should see :ref:`history`.
 
 
     Fix contributed by Alexey Zatelepin.
     Fix contributed by Alexey Zatelepin.
 
 
-- gevent: Now supports hard time limits using ``gevent.Timeout`.
+- gevent: Now supports hard time limits using ``gevent.Timeout``.
+
+- Documentation: Links to init scripts now point to the 3.0 branch instead
+  of the development branch (master).
+
+- Documentation: Fixed typo in signals user guide (Issue #986).
+
+    ``instance.app.queues`` -> ``instance.app.amqp.queues``.
+
+- Eventlet/gevent: The worker did not properly set the custom app
+  for new greenlets.
+
+- Eventlet/gevent: Fixed a bug where the worker could not recover
+  from connection loss (Issue #959).
+
+    Also, because of a suspected bug in gevent the
+    :setting:`BROKER_CONNECTION_TIMEOUT` setting has been disabled
+    when using gevent
 
 
 3.0.9
 3.0.9
 =====
 =====

+ 1 - 1
README.rst

@@ -4,7 +4,7 @@
 
 
 .. image:: http://cloud.github.com/downloads/celery/celery/celery_128.png
 .. image:: http://cloud.github.com/downloads/celery/celery/celery_128.png
 
 
-:Version: 3.0.9 (Chiastic Slide)
+:Version: 3.0.10 (Chiastic Slide)
 :Web: http://celeryproject.org/
 :Web: http://celeryproject.org/
 :Download: http://pypi.python.org/pypi/celery/
 :Download: http://pypi.python.org/pypi/celery/
 :Source: http://github.com/celery/celery/
 :Source: http://github.com/celery/celery/

+ 1 - 1
celery/__init__.py

@@ -8,7 +8,7 @@
 from __future__ import absolute_import
 from __future__ import absolute_import
 
 
 SERIES = 'Chiastic Slide'
 SERIES = 'Chiastic Slide'
-VERSION = (3, 0, 9)
+VERSION = (3, 0, 10)
 __version__ = '.'.join(map(str, VERSION[0:3])) + ''.join(VERSION[3:])
 __version__ = '.'.join(map(str, VERSION[0:3])) + ''.join(VERSION[3:])
 __author__ = 'Ask Solem'
 __author__ = 'Ask Solem'
 __contact__ = 'ask@celeryproject.org'
 __contact__ = 'ask@celeryproject.org'

+ 1 - 1
docs/includes/introduction.txt

@@ -1,4 +1,4 @@
-:Version: 3.0.9 (Chiastic Slide)
+:Version: 3.0.10 (Chiastic Slide)
 :Web: http://celeryproject.org/
 :Web: http://celeryproject.org/
 :Download: http://pypi.python.org/pypi/celery/
 :Download: http://pypi.python.org/pypi/celery/
 :Source: http://github.com/celery/celery/
 :Source: http://github.com/celery/celery/

+ 29 - 44
docs/userguide/periodic-tasks.rst

@@ -31,9 +31,13 @@ The periodic task schedules uses the UTC time zone by default,
 but you can change the time zone used using the :setting:`CELERY_TIMEZONE`
 but you can change the time zone used using the :setting:`CELERY_TIMEZONE`
 setting.
 setting.
 
 
-If you use a time zone other than UTC it's recommended to install the
-:mod:`pytz` library as this can improve the accuracy and keep your timezone
-specifications up to date:
+The `pytz`_ library is recommended when setting a default timezone.
+If :mod:`pytz` is not installed it will fallback to the mod:`dateutil`
+library, which depends on a system timezone file being available for
+the timezone selected.
+
+Timezone definitions change frequently, so for the best results
+an up to date :mod:`pytz` installation should be used.
 
 
 .. code-block:: bash
 .. code-block:: bash
 
 
@@ -46,14 +50,32 @@ An example time zone could be `Europe/London`:
 
 
     CELERY_TIMEZONE = 'Europe/London'
     CELERY_TIMEZONE = 'Europe/London'
 
 
-.. admonition:: Changing the time zone
-
 The default scheduler (storing the schedule in the :file:`celerybeat-schedule`
 The default scheduler (storing the schedule in the :file:`celerybeat-schedule`
-file) will automatically detect that the timezone has changed, and so will
+file) will automatically detect that the time zone has changed, and so will
 reset the schedule itself, but other schedulers may not be so smart (e.g. the
 reset the schedule itself, but other schedulers may not be so smart (e.g. the
-Django database scheduler) and in that case you will have to reset the
+Django database scheduler, see below) and in that case you will have to reset the
 schedule manually.
 schedule manually.
 
 
+.. admonition:: Django Users
+
+    Celery recommends and is compatible with the new ``USE_TZ`` setting introduced
+    in Django 1.4.
+
+    For Django users the time zone specified in the ``TIME_ZONE`` setting
+    will be used, or you can specify a custom time zone for Celery alone
+    by using the :setting:`CELERY_TIMEZONE` setting.
+
+    The database scheduler will not reset when timezone related settings
+    change, so you must do this manually:
+
+    .. code-block:: bash
+
+        $ python manage.py shell
+        >>> from djcelery.models import PeriodicTask
+        >>> PeriodicTask.objects.update(last_run_at=None)
+
+.. _`pytz`: http://pypi.python.org/pypi/pytz/
+
 .. _beat-entries:
 .. _beat-entries:
 
 
 Entries
 Entries
@@ -78,7 +100,6 @@ Example: Run the `tasks.add` task every 30 seconds.
 
 
     CELERY_TIMEZONE = 'UTC'
     CELERY_TIMEZONE = 'UTC'
 
 
-
 Using a :class:`~datetime.timedelta` for the schedule means the task will
 Using a :class:`~datetime.timedelta` for the schedule means the task will
 be executed 30 seconds after `celery beat` starts, and then every 30 seconds
 be executed 30 seconds after `celery beat` starts, and then every 30 seconds
 after the last run.  A crontab like schedule also exists, see the section
 after the last run.  A crontab like schedule also exists, see the section
@@ -208,42 +229,6 @@ The syntax of these crontab expressions are very flexible.  Some examples:
 
 
 See :class:`celery.schedules.crontab` for more documentation.
 See :class:`celery.schedules.crontab` for more documentation.
 
 
-.. _beat-timezones:
-
-Timezones
-=========
-
-By default the current local timezone is used, but you can also set a specific
-timezone by enabling the :setting:`CELERY_ENABLE_UTC` setting and configuring
-the :setting:`CELERY_TIMEZONE` setting:
-
-.. code-block:: python
-
-    CELERY_ENABLE_UTC = True
-    CELERY_TIMEZONE = 'Europe/London'
-
-.. admonition:: Django Users
-
-    For Django users the timezone specified in the ``TIME_ZONE`` setting
-    will be used, but *not if the :setting:`CELERY_ENABLE_UTC` setting is
-    enabled*.
-
-    Celery is also compatible with the new ``USE_TZ`` setting introduced
-    in Django 1.4.
-
-.. note::
-
-    The `pytz`_ library is recommended when setting a default timezone.
-    If :mod:`pytz` is not installed it will fallback to the mod:`dateutil`
-    library, which depends on a system timezone file being available for
-    the timezone selected.
-
-    Timezone definitions change frequently, so for the best results
-    an up to date :mod:`pytz` installation should be used.
-
-
-.. _`pytz`: http://pypi.python.org/pypi/pytz/
-
 .. _beat-starting:
 .. _beat-starting:
 
 
 Starting the Scheduler
 Starting the Scheduler