Как установить задержку в периодических задачах 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 и не можем использовать что-то вроде интервального расписания с заданной датой начала.

Вернуться на верх