是否可以在 django 设置中将参数传递给 celery 任务?
Is it possible to pass an argument to a celery task in django settings?
我的 settings.py 文件中有以下条目:
CELERYBEAT_SCHEDULE = {
'exec-task-every-hour': {
'task': 'app1.tasks.task1',
'schedule': crontab(hour='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23', minute='0')
}
}
而且效果很好。
是否可以添加一个参数,并通过此设置条目将其传递给正在调用的任务 (task1)?
是 - 在 'task'
和 'schedule'
旁边添加一个 'args'
列表(或 'kwargs'
字典以传递关键字参数)。
CELERYBEAT_SCHEDULE = {
'exec-task-every-hour': {
'task': 'app1.tasks.task1',
'schedule': crontab(hour='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23', minute='0'),
'args': (123, ),
}
}
另请参阅:celerybeat docs
我的 settings.py 文件中有以下条目:
CELERYBEAT_SCHEDULE = {
'exec-task-every-hour': {
'task': 'app1.tasks.task1',
'schedule': crontab(hour='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23', minute='0')
}
}
而且效果很好。
是否可以添加一个参数,并通过此设置条目将其传递给正在调用的任务 (task1)?
是 - 在 'task'
和 'schedule'
旁边添加一个 'args'
列表(或 'kwargs'
字典以传递关键字参数)。
CELERYBEAT_SCHEDULE = {
'exec-task-every-hour': {
'task': 'app1.tasks.task1',
'schedule': crontab(hour='0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23', minute='0'),
'args': (123, ),
}
}
另请参阅:celerybeat docs