Запускайте задачу сельдерея каждые 90 минут с 1:30 до 6 утра по UTC

#python-3.x #django #django-celery #celerybeat

#python-3.x #django #django-сельдерей #celerybeat

Вопрос:

Можем ли мы запустить задачу сельдерея в 1:30, 3:00, 4:30, 6 Я использую единую функцию crontab?

т.е. 'schedule': crontab(minute=30, hour='1, 3, 4, 6') будет запускать ее в 1:30, 3:30, 4:30, 6: 30 УТРА

но я хочу, чтобы она выполнялась каждые 90 минут с 1:30 до 6 утра

Ответ №1:

Я бы создал два отдельных расписания (а не отдельную функцию) как

 CELERY_BEAT_SCHEDULE = {
    "task_one": {
        "task": "path.to.task.my_task_function",
        "schedule": crontab(minute="30", hour="1, 4")
    },
    "task_two": {
        "task": "path.to.task.my_task_function",
        "schedule": crontab(hour="3, 6")
    },
}  

Здесь расписания указывают на ту же функцию с тем же именем my_task_function(...) , но с отдельными конфигурациями расписаний.

В этом параметре task_one он будет выполняться в 1.30 и 4.30 UTC, тогда task_two как он будет выполняться в 3.00 и 6.00 UTC