芹菜时间表未触发任务,未报告错误

时间:2018-09-05 15:32:28

标签: django celery

我在celery上使用Django:

在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()

Celery正在工作,可以识别任务,但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 :(得分:0)

您的节拍时间表配置错误,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), 
    },
}