每天在特定时间将任务安排到 运行 一次 |芹菜
Schedule task to run once daily at specific time | Celery
我想在世界标准时间 16 点安排 运行 两个任务 每天一次。
为此,我实现了这个芹菜配置:
from celery.schedules import crontab
CELERY_IMPORTS = ('api.tasks')
CELERY_TASK_RESULT_EXPIRES = 30
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {
'book-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(hour=16),
'args': ({'book'}),
},
'pencils-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(hour=16),
'args': ({'pencil'}),
}
}
我 运行 celery worker -A app.celery --loglevel=info --pool=solo
给 运行 芹菜工人 运行 宁 celery beat -A app.celery
启动芹菜节拍。
使用上面的配置,我有两个任务 运行ning 每分钟从 16h UTC 开始。我的配置有什么问题以及如何解决?
您需要在 crontab
中指定 minute
,不传递 minute
表示 the default value *
is used 每分钟 运行 作业。
在一小时开始时将 minute=0
传递给 运行
from celery.schedules import crontab
CELERY_IMPORTS = ('api.tasks')
CELERY_TASK_RESULT_EXPIRES = 30
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {
'book-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(minute=0, hour=16),
'args': ({'book'}),
},
'pencils-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(minute=0, hour=16),
'args': ({'pencil'}),
}
}
我想在世界标准时间 16 点安排 运行 两个任务 每天一次。
为此,我实现了这个芹菜配置:
from celery.schedules import crontab
CELERY_IMPORTS = ('api.tasks')
CELERY_TASK_RESULT_EXPIRES = 30
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {
'book-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(hour=16),
'args': ({'book'}),
},
'pencils-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(hour=16),
'args': ({'pencil'}),
}
}
我 运行 celery worker -A app.celery --loglevel=info --pool=solo
给 运行 芹菜工人 运行 宁 celery beat -A app.celery
启动芹菜节拍。
使用上面的配置,我有两个任务 运行ning 每分钟从 16h UTC 开始。我的配置有什么问题以及如何解决?
您需要在 crontab
中指定 minute
,不传递 minute
表示 the default value *
is used 每分钟 运行 作业。
在一小时开始时将 minute=0
传递给 运行
from celery.schedules import crontab
CELERY_IMPORTS = ('api.tasks')
CELERY_TASK_RESULT_EXPIRES = 30
CELERY_TIMEZONE = 'UTC'
CELERYBEAT_SCHEDULE = {
'book-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(minute=0, hour=16),
'args': ({'book'}),
},
'pencils-task': {
'task': 'api.tasks.get_data',
# At 16h UTC everyday
'schedule': crontab(minute=0, hour=16),
'args': ({'pencil'}),
}
}