Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我将回调连接到 celery task_success 信号处理程序,它将在哪个进程中执行?子进程还是工作进程?
该文档没有明确列出它。(它为信号 task_sent 列出了它,但没有为其他信号列出:http ://docs.celeryproject.org/en/latest/userguide/signals.html#task-sent )
谢谢...
没有所谓的“子”进程;有发送任务的进程(可以是任何 Python 进程,包括 celery worker,或 celery beat,或其他任何东西),并且有处理任务的 worker。
除此以外的所有任务信号task_sent都在处理任务的worker中执行;事实上,他们不可能在其他任何地方执行。Celery 信号(如 Django 信号)与操作系统事件或 Celery 任务不同,它们可以起源于一个进程并触发另一个进程中的某些东西;它们在与它们起源相同的过程中得到处理。signal它们与 Python 标准库模块无关。
task_sent
signal