如果我将回调挂接到celener task_success信号处理程序,它将在哪个进程中执行?孩子还是工人的过程?
文档没有明确列出它。(它为信号task_sent列出了它,但不为其他信号列出:http://docs.celeryproject.org/en/latest/userguide/signals.html#task-发送)
谢谢。。。
没有"子"进程这回事;有一个进程发送任务(可以是任何Python进程,包括一个芹菜工作进程、芹菜节拍或其他任何进程),也有一个处理任务的工作进程。
除了task_sent
之外的所有任务信号都在处理该任务的工作者中执行;事实上,它们不可能在其他任何地方执行。Celery信号(像Django信号)不像操作系统事件,也不像Celery任务,它们可以起源于一个进程,并在另一个进程中触发某些东西;它们的处理过程与它们产生的过程相同。它们与Python标准库signal
模块无关。