如果我将一个回调挂钩到celery task_success信号处理程序,它会被执行哪个进程?孩子或工人的过程?
文档没有明确列出它。 (它列出了信号task_sent,但没有列出其他信号:http://docs.celeryproject.org/en/latest/userguide/signals.html#task-sent)
感谢...
答案 0 :(得分:2)
没有“孩子”过程这样的事情;有发送任务的进程(可以是任何Python进程,包括芹菜工作者,芹菜殴打或其他任何东西),并且有工作人员处理任务。
除了task_sent
之外的所有任务信号都在处理任务的工作人员中执行;事实上,他们不可能在其他任何地方执行。 Celery信号(如Django信号)与操作系统事件不同,或者像Celery任务一样,它们可以源于一个进程并在另一个进程中触发某些内容;它们在与它们产生的过程相同的过程中得到处理。它们与Python标准库signal
模块无关。