на heroku, планировщик базы данных биений сельдерея не запускает периодические c задач - PullRequest
0 голосов
/ 16 февраля 2020

У меня проблема с тем, что django_celery_beat DatabaseScheduler не запускает периодические c задачи. Или я должен сказать, где сельдерея не находит никаких задач, когда планировщик - DatabaseScheduler. В случае, если я использую стандартный планировщик, задачи выполняются регулярно.

Я настраиваю сельдерей на герою, используя динамик для рабочего и один для удара (и один для сети, очевидно).

I знать, что бит и работник подключены к redis и postgres для результатов задачи.

Каждая периодическая c задача, которую я запускаю из django admin, выбирая задачу, и выполняется «запустить выбранную задачу».

Однако около двух дней я пытаюсь выяснить, почему у ритма / работника нет способа узнать, что я запланировал выполнение задачи каждые 10 секунд или с помощью cron ( даже перезапуск ритма и ремота не меняет его).

Я немного отчаялся, и моим следующим шагом будет попытка redbeat.

Любая помощь в том, как это сделать. Устранение этой конкретной проблемы будет с благодарностью. Я подозреваю, что проблема в is_due методе. Я использую UT C (в сельдерее и django), все cron основаны на UT C. Все, что я вижу в журнале ударов, это «запись записей ...» каждый раз и потом.

Я пытался изменить версию сельдерея с 4.3 на 4.4 и django удар сельдерея с 1.4.0 до 1.5.0 до 1.6.0

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 февраля 2020

В случае, если это помогает кому-то, кто имеет или будет иметь проблемы, подобные нашей: чтобы воссоздать эту проблему, можно создать задачу так же просто, как:

@app.task(bind=True)
def test(self, arg):

    print(kwargs.get("notification_id"))

затем, в django admin, введите редактирование задачи и поместите что-нибудь в поле дополнительных аргументов. Или, наоборот, задача может быть

@app.task(bind=True)
def test(self, **kwargs):

    print(notification_id)

и попытаться передать позиционный аргумент. В то время как локально это нарушается, для ритма Героку и рабочего динамо, это как-то ускользает незаметно, и django_celery_beats прекращает обработку любой задачи в будущем. Планировщик полностью сломан из-за «неправильной» задачи.

...