Как установить задержку в периодических задачах django-celery-beat?
У нас есть пользовательская периодическая задача (подкласс модели django-celery-beat's PeriodicTask), которая планируется с помощью CronSchedule. В нашей пользовательской периодической задаче мы хотим разрешить опциональную задержку, когда задача будет запланирована.
Итак, если расписание cron составляет каждые 20 минут (*/20 * * * *
), с задержкой в 30 минут, то он должен быть запланирован на выполнение
Без задержки: 00:00, 00:20, 00:40
С задержкой: 00:30, 00:50, 01:10
Сначала мы думали использовать синтаксис смещения CRON: <delay>-59/<frequency> * * * *
, но даже на примере выше ясно, что это не сработает.
Как мы можем сделать что-то подобное в django-celery-beat? Обратите внимание, что мы ограничены использованием расписания CRON и не можем использовать что-то вроде интервального расписания с заданной датой начала.