Files
tryton/trytond/doc/topics/cron.rst
T
Cédric Krier f52623afb7 Remove unnecessary parenthesis in cron documentation
Closes #13502
(grafted from 82d409471f4af739c2faa412af291ac72e8e0e43)

--HG--
branch : 7.0
2024-09-12 08:36:06 +02:00

53 lines
1.4 KiB
ReStructuredText

.. _topics-cron:
=================
Scheduled Actions
=================
Tryton provides a scheduler (aka cron) which can execute methods of
:ref:`models <topics-models>` periodically at set intervals.
The planning is managed by ``ir.cron`` records which store the method to call
and the interval of time between calls. The method must be a class method of a
:class:`~trytond.model.Model` which can be called without any parameters.
.. note::
The timezone used to schedule the action is
:attr:`timezone.SERVER <trytond.tools.timezone.SERVER>`.
To register a new method with the scheduler, you must extend the ``ir.cron``
model and append the new method to the
:attr:`~trytond.model.fields.Selection.selection` attribute of the ``method``
field in :meth:`~trytond.model.Model.__setup__`.
The name of the selection must be the model name and the method name joined
together with a ``|`` between them.
Example:
.. highlight:: python
::
from trytond.model import Model
from trytond.pool import PoolMeta
class Cron(metaclass=PoolMeta):
__name__ = 'ir.cron'
@classmethod
def __setup__(cls):
super().__setup__()
cls.method.selection.append(
('my_model|my_method', "Run my method"),
)
class MyModel(Model):
"My Model"
__name__ = 'my_model'
@classmethod
def my_method(cls):
pass