Skip to content
Snippets Groups Projects

Added celery worker and celery beat

Merged Mohammad Torkashvand requested to merge feature/NAT-358-setup-celery into develop
All threads resolved!
Files
3
+ 12
75
@@ -14,81 +14,18 @@ def scheduler(
@@ -14,81 +14,18 @@ def scheduler(
day_of_month: str = "*",
day_of_month: str = "*",
month_of_year: str = "*",
month_of_year: str = "*",
) -> Callable[[Callable], Callable]:
) -> Callable[[Callable], Callable]:
"""Crontab schedule.
"""Schedule a Celery task using crontab-like timing.
A Crontab can be used as the ``run_every`` value of a
Examples
periodic task entry to add :manpage:`crontab(5)`-like scheduling.
--------
- `minute='*/15'`: Run every 15 minutes.
Like a :manpage:`cron(5)`-job, you can specify units of time of when
- `hour='*/3'`: Run every 3 hours.
you'd like the task to execute. It's a reasonably complete
- `day_of_week='mon-fri'`: Run on weekdays only.
implementation of :command:`cron`'s features, so it should provide a fair
- `day_of_month='1-7,15-21'`: Run on the first and third weeks of the month.
degree of scheduling needs.
- `month_of_year='*/3'`: Run on the first month of each quarter.
You can specify a minute, an hour, a day of the week, a day of the
All time units can be specified with lists of numbers or crontab pattern strings for advanced scheduling.
month, and/or a month in the year in any of the following formats:
All specified time parts (minute, hour, day, etc.) must align for a task to run.
.. attribute:: minute
- A (list of) integers from 0-59 that represent the minutes of
an hour of when execution should occur; or
- A string representing a Crontab pattern. This may get pretty
advanced, like ``minute='*/15'`` (for every quarter) or
``minute='1,13,30-45,50-59/2'``.
.. attribute:: hour
- A (list of) integers from 0-23 that represent the hours of
a day of when execution should occur; or
- A string representing a Crontab pattern. This may get pretty
advanced, like ``hour='*/3'`` (for every three hours) or
``hour='0,8-17/2'`` (at midnight, and every two hours during
office hours).
.. attribute:: day_of_week
- A (list of) integers from 0-6, where Sunday = 0 and Saturday =
6, that represent the days of a week that execution should
occur.
- A string representing a Crontab pattern. This may get pretty
advanced, like ``day_of_week='mon-fri'`` (for weekdays only).
(Beware that ``day_of_week='*/2'`` does not literally mean
'every two days', but 'every day that is divisible by two'!)
.. attribute:: day_of_month
- A (list of) integers from 1-31 that represents the days of the
month that execution should occur.
- A string representing a Crontab pattern. This may get pretty
advanced, such as ``day_of_month='2-30/2'`` (for every even
numbered day) or ``day_of_month='1-7,15-21'`` (for the first and
third weeks of the month).
.. attribute:: month_of_year
- A (list of) integers from 1-12 that represents the months of
the year during which execution can occur.
- A string representing a Crontab pattern. This may get pretty
advanced, such as ``month_of_year='*/3'`` (for the first month
of every quarter) or ``month_of_year='2-12/2'`` (for every even
numbered month).
.. attribute:: nowfun
Function returning the current date and time
(:class:`~datetime.datetime`).
.. attribute:: app
The Celery app instance.
It's important to realize that any day on which execution should
occur must be represented by entries in all three of the day and
month attributes. For example, if ``day_of_week`` is 0 and
``day_of_month`` is every seventh day, only months that begin
on Sunday and are also in the ``month_of_year`` attribute will have
execution events. Or, ``day_of_week`` is 1 and ``day_of_month``
is '1-7,15-21' means every first and third Monday of every month
present in ``month_of_year``.
"""
"""
def decorator(task_func: Callable) -> Callable:
def decorator(task_func: Callable) -> Callable:
Loading