Расписание сельдерея не вызывает задачи, об ошибках не сообщается - PullRequest
0 голосов
/ 05 сентября 2018

Я использую Джанго с сельдереем:

В celery.py у меня есть:

app.conf.beat_schedule = {
    'send_notes_email': {
        'task': 'send_notes_email_async',
        'schedule': crontab(minute=3), 
    },
}

Задание поставлено:

@app.task(bind=True, name='send_notes_email_async', max_retries=3)
def send_notes_email_async():
    print('a')
    send_notes_email()

Сельдерей работает, распознает задачи, но не срабатывает через 3 минуты. Также нет ошибок. Redis сообщает ключи Задачи сельдерея работают без графика

 -------------- celery@WIN-U5VDSO5V1CK v4.2.1 (windowlicker)
---- **** -----
--- * ***  * -- Windows-7-6.1.7601-SP1
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         PH:0x3d2d128
- ** ---------- .> transport:   redis://localhost:6379//
- ** ---------- .> results:     redis://localhost:6379/
- *** --- * --- .> concurrency: 2 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery
[tasks]
  . send_notes_email_async

1 Ответ

0 голосов
/ 05 сентября 2018

У вас неверная конфигурация расписания ударов, minute=3 в cronjob означает, что вы выполняете задачу на 3-й минуте (01:03, 02:03, 03:03, 04:03 ...).

Это то, что вы хотите, который выполняет задачу каждые 3 минуты:

app.conf.beat_schedule = {
    'send_notes_email': {
        'task': 'send_notes_email_async',
        'schedule': crontab(minute=*/3), 
    },
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...