|
@@ -22,6 +22,38 @@ at a time, otherwise you would end up with duplicate tasks. Using
|
|
|
a centralized approach means the schedule does not have to be synchronized,
|
|
|
and the service can operate without using locks.
|
|
|
|
|
|
+.. _beat-timezones:
|
|
|
+
|
|
|
+Time Zones
|
|
|
+==========
|
|
|
+
|
|
|
+The periodic task schedules uses the UTC time zone by default,
|
|
|
+but you can change the time zone used using the :setting:`CELERY_TIMEZONE`
|
|
|
+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:
|
|
|
+
|
|
|
+.. code-block:: bash
|
|
|
+
|
|
|
+ $ pip install -U pytz
|
|
|
+
|
|
|
+
|
|
|
+An example time zone could be `Europe/London`:
|
|
|
+
|
|
|
+.. code-block:: python
|
|
|
+
|
|
|
+ CELERY_TIMEZONE = 'Europe/London'
|
|
|
+
|
|
|
+.. admonition:: Changing the time zone
|
|
|
+
|
|
|
+The default scheduler (storing the schedule in the :file:`celerybeat-schedule`
|
|
|
+file) will automatically detect that the timezone has changed, and so will
|
|
|
+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
|
|
|
+schedule manually.
|
|
|
+
|
|
|
.. _beat-entries:
|
|
|
|
|
|
Entries
|
|
@@ -44,6 +76,8 @@ Example: Run the `tasks.add` task every 30 seconds.
|
|
|
},
|
|
|
}
|
|
|
|
|
|
+ CELERY_TIMEZONE = 'UTC'
|
|
|
+
|
|
|
|
|
|
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
|