Задать вопрос
@Eldalex

Как динамически добавить задание в celery?

Народ, как можно динамически добавить задание в celery?
раз в 5 минут в логе beat проскакивает строка
beat: Synchronizing schedule...
я так понимаю он чекает своё расписание celerybeat-schedule.dat и если есть то обновляется.
я добавляю туда задачу
with shelve.open("celerybeat-schedule", writeback=True) as db:
    new_task = ScheduleEntry(name='one_more_task', task='tasks.super_task',schedule=schedule(run_every=timedelta(minutes=1)), args=[5,])
    db['entries'].update({new_task.name:new_task})

Но, к сожалению после обновления ничего не происходит, он так и продолжает выполнять единственную задачу раз в 5 минут, ежеминутную задачу не видит.
Вообще есть возможность добавить задачу без перезапуска beat?

Upd1:
Так, еще дополнение, после синхронизации моя добавленная задача исчезает из файла.

Upd2:
celerybeat-schedule это не расписание, это лишь хранилище куда складывается актуальная информация о выполнении задач, список, количество запусков и прочее...
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
тут погуляй по ссылкам, вроде сделали такую возможность, но сам подходец странный, если честно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы