允许所有芹菜任务的特定关键字
Allow specific keyword for all celery tasks
我对每个任务都有一个特定的关键字,它只用于task_prerun
信号,而不是任务本身。
我需要允许每个任务接受该参数而不向每个任务添加 **kwarg
的方法。
可能吗?
您可以使用 message headers 来达到这个目的:
result = celery.send_task('add_numbers', args=(1, 2), headers={'special': 'foo'})
然后您应该能够像这样在 task_prerun
信号处理程序中提取 special
值:
def on_task_prerun(self, sender, task_id, task, args, kwargs,
**other_kwargs):
...
special_value = sender.request.message.headers.get('special')
...
我对每个任务都有一个特定的关键字,它只用于task_prerun
信号,而不是任务本身。
我需要允许每个任务接受该参数而不向每个任务添加 **kwarg
的方法。
可能吗?
您可以使用 message headers 来达到这个目的:
result = celery.send_task('add_numbers', args=(1, 2), headers={'special': 'foo'})
然后您应该能够像这样在 task_prerun
信号处理程序中提取 special
值:
def on_task_prerun(self, sender, task_id, task, args, kwargs,
**other_kwargs):
...
special_value = sender.request.message.headers.get('special')
...