Как мне запланировать задачу с Celery, которая запускается 1-го числа каждого месяца? - PullRequest
11 голосов
/ 09 декабря 2010

Как мне запланировать задачу с , которая запускается 1-го числа каждого месяца?

Ответы [ 2 ]

13 голосов
/ 09 декабря 2010

Начиная с Celery 3.0, расписание crontab теперь поддерживает day_of_month и month_of_year аргументы: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules

2 голосов
/ 04 января 2017

Вы можете сделать это, используя 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.
    },
}
  • in 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.
    },
}
...