Files
django-q2/docs/schedules.rst
2015-07-08 13:33:03 +02:00

90 lines
2.4 KiB
ReStructuredText

Schedules
=========
Schedules are regular Django models. You can manage them through the :ref:`admin_page` or directly from your code with the :func:`schedule` function or the :class:`Schedule` model:
.. code:: python
from django_q import Schedule, schedule
# Use the schedule wrapper
schedule('math.copysign',
2, -2,
hook='hooks.print_result',
schedule_type=Schedule.DAILY)
# Or create the object directly
Schedule.objects.create(func='math.copysign',
hook='hooks.print_result',
args='2,-2',
schedule_type=Schedule.DAILY
)
Reference
---------
.. py:function:: schedule(func, *args, hook=None, schedule_type='O', repeats=-1, next_run=now() , **kwargs)
Creates a schedule
:param str func: the function to schedule. Dotted strings only.
:param args: arguments for the scheduled function.
:param str hook: optional result hook function. Dotted strings only.
:param str schedule_type: (O)nce, (H)ourly, (D)aily, (W)eekly, (M)onthly, (Q)uarterly, (Y)early or :attr:`Schedule.TYPE`
:param int repeats: Number of times to repeat schedule. -1=Always, 0=Never, n =n.
:param datetime next_run: Next or first scheduled execution datetime.
:param kwargs: optional keyword arguments for the scheduled function.
.. class:: Schedule
A database model for task schedules.
.. py:attribute:: func
The function to be scheduled
.. py:attribute:: hook
Optional hook function to be called after execution.
.. py:attribute:: args
Positional arguments for the function.
.. py:attribute:: kwargs
Keyword arguments for the function
.. py:attribute:: schedule_type
The type of schedule. Follows :attr:`Schedule.TYPE`
.. py:attribute:: TYPE
`ONCE`, `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`. `QUARTERLY`, `YEARLY`
.. py:attribute:: repeats
Number of times to repeat the schedule. -1=Always, 0=Never, n =n.
When set to -1, this will keep counting down.
.. py:attribute:: next_run
Datetime of the next scheduled execution.
.. py:attribute:: task
Id of the last task generated by this schedule.
.. py:method:: last_run()
Admin link to the last executed task.
.. py:method:: success()
Returns the success status of the last executed task.