首页 > 解决方案 > Celery Beat 在启动时发送任务(在预定时间之前)

问题描述

我有一个芹菜节拍时间表:

CELERY_BEAT_SCHEDULE = {               
    "test-task": {                     
        "task": "myapp.tasks.test_task",          
        "schedule": crontab(hour=20),   # Should execute at 8pm UTC!
    }                                  
}                                      

当我执行节拍实例时,

celery --app myapp beat --loglevel DEBUG

celery beat 实例自动将任务发送给代理:

[2021-05-03 14:12:04,022: INFO/MainProcess] Scheduler: Sending due task test-task (myapp.tasks.test_task)

有没有办法防止它?该任务只应在晚上 8 点执行,并且绝不能在此之前执行。

标签: djangocelerycelerybeat

解决方案


我也在运行类似的东西,没有问题(它不在启动时执行)。

与您的代码的唯一区别是我也指定了分钟,因此值得尝试:

CELERY_BEAT_SCHEDULE = {               
    "test-task": {                     
        "task": "myapp.tasks.test_task",
        "args": (),
        "schedule": crontab(minute='0', hour=20),   # Should execute at 8pm UTC!
    }                                  
}                                      

推荐阅读