Я несколько задач, что-то вроде этого:сельдерей задача же график с офсетной
CELERYBEAT_SCHEDULE = {
'task1': {
'task': 'api.tasks.task1',
'schedule': timedelta(seconds=10),
},
'task2': {
'task': 'api.tasks.task2',
'schedule': timedelta(seconds=30),
},
'task3': {
'task': 'api.tasks.task3',
'schedule': timedelta(seconds=15),
},
...
}
Так, task1 будет работать в *: *: 10 *: *: 20 *: *: 30, *: *: 40 *: *: 50 и *: *: 00
task2 будет работать в *: *: 30 и *: *: 00
Task3 будет работать в *: *: 15, *: *: 30, *: *: 45 и *: *: 00
Тогда задачи всегда согласуются *: *: 30 и *: *: 00. Есть ли способ добавить смещение. Я хочу получить что-то вроде этого:
task1 (offset = 2) run in *: *: 12, *: *: 22, *: *: 32, *: *: 42, *: *: 52 и *: *: 02
task2 (смещение = 7) выполняются в *: *: 37 и *: *: 07
Task3 (смещение = 0) выполняются в *: *: 15, *: *: 30, *: *: 45 и *: *: 00
Я прочитал документацию, и я думаю, что я должен использовать crontab, но разве нет другого способа более приятного? И кронтаб не имеет для конфигурации секунд :-(
Я реализовал один раз [schedulesince] (https://gist.github.com/glowka/a3936877cb754d30e3ff753e1b94d67b) ('timedelta (секунды = 10) 'является обычно преобразуется в 'schedule (timedelta (seconds = 10))'). Это не совсем то, о чем вы просили, но, возможно, это помогает. – glowka
Спасибо @glowka Я могу использовать его как пример ... но да, это не решает мою проблему :-( – Goin
На ваш вопрос? –