/usr/lib/python3/dist-packages/django_celery_beat-1.1.1.egg-info/PKG-INFO is in python3-django-celery-beat 1.1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 | Metadata-Version: 1.1
Name: django-celery-beat
Version: 1.1.1
Summary: Database-backed Periodic Tasks.
Home-page: https://github.com/celery/django-celery-beat
Author: Ask Solem
Author-email: ask@celeryproject.org
License: BSD
Description-Content-Type: UNKNOWN
Description: =====================================================================
Database-backed Periodic Tasks
=====================================================================
|build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
:Version: 1.1.1
:Web: http://django-celery-beat.readthedocs.io/
:Download: http://pypi.python.org/pypi/django-celery-beat
:Source: http://github.com/celery/django-celery-beat
:Keywords: django, celery, beat, periodic task, cron, scheduling
About
=====
This extension enables you to store the periodic task schedule in the
database.
The periodic tasks can be managed from the Django Admin interface, where you
can create, edit and delete periodic tasks and how often they should run.
Using the Extension
===================
Usage and installation instructions for this extension are available
from the `Celery documentation`_:
http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#using-custom-scheduler-classes
.. _`Celery documentation`:
http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#using-custom-scheduler-classes
Important Warning about Time Zones
==================================
.. warning::
If you change the Django ``TIME_ZONE`` setting your periodic task schedule
will still be based on the old timezone.
To fix that you would have to reset the "last run time" for each periodic
task::
>>> from django_celery_beat.models import PeriodicTask, PeriodicTasks
>>> PeriodicTask.objects.all().update(last_run_at=None)
>>> for task in PeriodicTask.objects.all():
>>> PeriodicTasks.changed(task)
Note that this will reset the state as if the periodic tasks have never run
before.
Models
======
- ``django_celery_beat.models.PeriodicTask``
This model defines a single periodic task to be run.
It must be associated with a schedule, which defines how often the task should
run.
- ``django_celery_beat.models.IntervalSchedule``
A schedule that runs at a specific interval (e.g. every 5 seconds).
- ``django_celery_beat.models.CrontabSchedule``
A schedule with fields like entries in cron:
``minute hour day-of-week day_of_month month_of_year``.
- ``django_celery_beat.models.PeriodicTasks``
This model is only used as an index to keep track of when the schedule has
changed.
Whenever you update a ``PeriodicTask`` a counter in this table is also
incremented, which tells the ``celery beat`` service to reload the schedule
from the database.
If you update periodic tasks in bulk, you will need to update the counter
manually::
>>> from django_celery_beat.models import PeriodicTasks
>>> PeriodicTasks.changed()
Example creating interval-based periodic task
---------------------------------------------
To create a periodic task executing at an interval you must first
create the interval object::
>>> from django_celery_beat.models import PeriodicTask, IntervalSchedule
# executes every 10 seconds.
>>> schedule, created = IntervalSchedule.objects.get_or_create(
... every=10,
... period=IntervalSchedule.SECONDS,
... )
That's all the fields you need: a period type and the frequency.
You can choose between a specific set of periods:
- ``IntervalSchedule.DAYS``
- ``IntervalSchedule.HOURS``
- ``IntervalSchedule.MINUTES``
- ``IntervalSchedule.SECONDS``
- ``IntervalSchedule.MICROSECONDS``
.. note::
If you have multiple periodic tasks executing every 10 seconds,
then they should all point to the same schedule object.
There's also a "choices tuple" available should you need to present this
to the user::
>>> IntervalSchedule.PERIOD_CHOICES
Now that we have defined the schedule object, we can create the periodic task
entry::
>>> PeriodicTask.objects.create(
... interval=schedule, # we created this above.
... name='Importing contacts', # simply describes this periodic task.
... task='proj.tasks.import_contacts', # name of task.
... )
Note that this is a very basic example, you can also specify the arguments
and keyword arguments used to execute the task, the ``queue`` to send it
to[*], and set an expiry time.
Here's an example specifying the arguments, note how JSON serialization is
required::
>>> import json
>>> from datetime import datetime, timedelta
>>> PeriodicTask.objects.create(
... interval=schedule, # we created this above.
... name='Importing contacts', # simply describes this periodic task.
... task='proj.tasks.import_contacts', # name of task.
... args=json.dumps(['arg1', 'arg2']),
... kwargs=json.dumps({
... 'be_careful': True,
... }),
... expires=datetime.utcnow() + timedelta(seconds=30)
... )
.. [*] you can also use low-level AMQP routing using the ``exchange`` and
``routing_key`` fields.
Example creating crontab-based periodic task
--------------------------------------------
A crontab schedule has the fields: ``minute``, ``hour``, ``day_of_week``,
``day_of_month`` and ``month_of_year`, so if you want the equivalent
of a ``30 * * * *`` (execute every 30 minutes) crontab entry you specify::
>>> from django_celery_beat.models import CrontabSchedule, PeriodicTask
>>> schedule, _ = CrontabSchedule.objects.get_or_create(
... minute='30',
... hour='*',
... day_of_week='*',
... day_of_month='*',
... month_of_year='*',
... )
Then to create a periodic task using this schedule, use the same approach as
the interval-based periodic task earlier in this document, but instead
of ``interval=schedule``, specify ``crontab=schedule``::
>>> PeriodicTask.objects.create(
... crontab=schedule,
... name='Importing contacts',
... task='proj.tasks.import_contacts',
... )
Temporarily disable a periodic task
-----------------------------------
You can use the ``enabled`` flag to temporarily disable a periodic task::
>>> periodic_task.enabled = False
>>> periodic_task.save()
Installation
============
You can install django-celery-beat either via the Python Package Index (PyPI)
or from source.
To install using `pip`,::
$ pip install -U django-celery-beat
Downloading and installing from source
--------------------------------------
Download the latest version of django-celery-beat from
http://pypi.python.org/pypi/django-celery-beat
You can install it by doing the following,::
$ tar xvfz django-celery-beat-0.0.0.tar.gz
$ cd django-celery-beat-0.0.0
$ python setup.py build
# python setup.py install
The last command must be executed as a privileged user if
you are not currently using a virtualenv.
Using the development version
-----------------------------
With pip
~~~~~~~~
You can install the latest snapshot of django-celery-beat using the following
pip command::
$ pip install https://github.com/celery/django-celery-beat/zipball/master#egg=django-celery-beat
.. |build-status| image:: https://secure.travis-ci.org/celery/django-celery-beat.svg?branch=master
:alt: Build status
:target: https://travis-ci.org/celery/django-celery-beat
.. |coverage| image:: https://codecov.io/github/celery/django-celery-beat/coverage.svg?branch=master
:target: https://codecov.io/github/celery/django-celery-beat?branch=master
.. |license| image:: https://img.shields.io/pypi/l/django-celery-beat.svg
:alt: BSD License
:target: https://opensource.org/licenses/BSD-3-Clause
.. |wheel| image:: https://img.shields.io/pypi/wheel/django-celery-beat.svg
:alt: django-celery-beat can be installed via wheel
:target: http://pypi.python.org/pypi/django-celery-beat/
.. |pyversion| image:: https://img.shields.io/pypi/pyversions/django-celery-beat.svg
:alt: Supported Python versions.
:target: http://pypi.python.org/pypi/django-celery-beat/
.. |pyimp| image:: https://img.shields.io/pypi/implementation/django-celery-beat.svg
:alt: Support Python implementations.
:target: http://pypi.python.org/pypi/django-celery-beat/
Keywords: django celery beat periodic task database
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Framework :: Django :: 1.10
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Operating System :: OS Independent
Classifier: Topic :: Communications
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|