1
如果我将一个回调连接到芹菜task_success信号处理程序,它会在哪个进程中执行?孩子还是工人的过程?芹菜信号task_success执行哪个进程?
该文档没有明确列出它。 (它列出了它的信号task_sent,但不能用于其他信号:http://docs.celeryproject.org/en/latest/userguide/signals.html#task-sent)
感谢...
如果我将一个回调连接到芹菜task_success信号处理程序,它会在哪个进程中执行?孩子还是工人的过程?芹菜信号task_success执行哪个进程?
该文档没有明确列出它。 (它列出了它的信号task_sent,但不能用于其他信号:http://docs.celeryproject.org/en/latest/userguide/signals.html#task-sent)
感谢...
有“子”过程中没有这样的事;有发送任务的进程(可以是任何Python进程,包括芹菜工作者,芹菜拍或其他任何东西),还有处理任务的工作人员。
在处理任务的工作人员中执行除task_sent
以外的所有任务信号;实际上他们不可能在其他地方执行。 Celery信号(如Django信号)不像操作系统事件,或者像Celery任务一样,它可以始于一个进程并在另一个进程中触发某些事件;他们得到的处理过程与他们所处的过程相同。它们与Python标准库signal
模块无关。
信息是重要的和基本的,因为这在芹菜文档中很遗漏(截至3.1)在几个地方。 –