django - 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 点执行,并且绝不能在此之前执行。
解决方案
我也在运行类似的东西,没有问题(它不在启动时执行)。
与您的代码的唯一区别是我也指定了分钟,因此值得尝试:
CELERY_BEAT_SCHEDULE = {
"test-task": {
"task": "myapp.tasks.test_task",
"args": (),
"schedule": crontab(minute='0', hour=20), # Should execute at 8pm UTC!
}
}
推荐阅读
- javascript - 如何捕获迭代的数组的索引(Javascript)
- c - 无法添加到链接列表的头部
- android - 使用 countDownLatch.await() 确保结果已交付
- python - 如何修复我的代码来解决这个难题?(Python)
- html - 如何在 html 画布上转换和绘制图像?
- image - 如何批量调整PNG文件的大小?
- javascript - 如何使用 jQuery 更改数据图标值?
- r - 使用 R data.table 进行子集连接替换
- r - Monte Carlo 使用 Gamma 分布估计 Theta
- amazon-web-services - 用于拉取请求的 AWS Amplify 环境变量?