Как назначить задачу с celery, который работает 1-го числа каждого месяца?
Как я планирую задачу с Celery, которая работает 1-го числа каждого месяца?
Ответ 1
Поскольку Celery 3.0 теперь расписание crontab поддерживает day_of_month
и month_of_year
: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules
Ответ 2
Вы можете сделать это, используя расписание Crontab, и вы также определите это:
- в вашем django settings.py:
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
'my_periodic_task': {
'task': 'my_app.tasks.my_periodic_task',
'schedule': crontab(0, 0, day_of_month='1'), # Execute on the first day of every month.
},
}
- в celery.py config:
from celery import Celery
from celery.schedules import crontab
app = Celery('app_name')
app.conf.beat_schedule = {
'my_periodic_task': {
'task': 'my_app.tasks.my_periodic_task',
'schedule': crontab(0, 0, day_of_month='1'), # Execute on the first day of every month.
},
}