是否可以在 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