Celery 每分钟击败 运行 个任务,甚至认为它设置为每两个小时一次
Celery beat running tasks every minute even thought It's set for every two hours
我正在尝试每天在特定时间使用 celery beat 运行 任务。
但是出于测试目的,我每两个小时将两个任务设置为 运行,这就是我的配置:
CELERYBEAT_SCHEDULE = {
'daily-google-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(hour='*/2'),
'args': (['G'])
},
'daily-facebook-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(hour='*/2'),
'args': (['F'])
}
}
我就是这样运行芹菜的:
celery beat -A app.engine.celery --schedule=/tmp/celerybeat-schedule --pidfile=/tmp/celerybeat.pid -l info
Docker 容器中的所有 运行s 使用 docker-compose,因此我确保重新构建应用程序的映像并重新启动容器。
我什至进入 运行ning 容器,我在代码中看到了 crontab 设置...但是在我的日志中,我每分钟看到任务 运行ning。
我还能做些什么来调试它?
感谢任何帮助,
谢谢
您的 crontab 配置为 运行“每 2 小时后 每分钟 ”。
from celery.schedules import crontab
str(crontab(hour='*/2'))
'<crontab: * */2 * * * (m/h/d/dM/MY)>'
参考:https://crontab.guru/#*_*/2_*_*_*
“每两小时”的正确 crontab 是:0 */2 * * *
。
参考:https://crontab.guru/every-2-hours
这应该可以解决您的问题:
CELERYBEAT_SCHEDULE = {
'daily-google-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(minute='0', hour='*/2'),
'args': (['G'])
},
'daily-facebook-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(minute='0', hour='*/2'),
'args': (['F'])
}
}
我正在尝试每天在特定时间使用 celery beat 运行 任务。 但是出于测试目的,我每两个小时将两个任务设置为 运行,这就是我的配置:
CELERYBEAT_SCHEDULE = {
'daily-google-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(hour='*/2'),
'args': (['G'])
},
'daily-facebook-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(hour='*/2'),
'args': (['F'])
}
}
我就是这样运行芹菜的:
celery beat -A app.engine.celery --schedule=/tmp/celerybeat-schedule --pidfile=/tmp/celerybeat.pid -l info
Docker 容器中的所有 运行s 使用 docker-compose,因此我确保重新构建应用程序的映像并重新启动容器。
我什至进入 运行ning 容器,我在代码中看到了 crontab 设置...但是在我的日志中,我每分钟看到任务 运行ning。
我还能做些什么来调试它?
感谢任何帮助,
谢谢
您的 crontab 配置为 运行“每 2 小时后 每分钟 ”。
from celery.schedules import crontab
str(crontab(hour='*/2'))
'<crontab: * */2 * * * (m/h/d/dM/MY)>'
参考:https://crontab.guru/#*_*/2_*_*_*
“每两小时”的正确 crontab 是:0 */2 * * *
。
参考:https://crontab.guru/every-2-hours
这应该可以解决您的问题:
CELERYBEAT_SCHEDULE = {
'daily-google-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(minute='0', hour='*/2'),
'args': (['G'])
},
'daily-facebook-connect': {
'task': 'app.engine.schedule_fetcher',
'schedule': crontab(minute='0', hour='*/2'),
'args': (['F'])
}
}