3

セロリの task_success シグナル ハンドラにコールバックを接続すると、どのプロセスで実行されますか? 子またはワーカープロセス?

ドキュメントには明示的にリストされていません。(シグナル task_sent についてはリストされていますが、他のシグナルについてはリストされていません: http://docs.celeryproject.org/en/latest/userguide/signals.html#task-sent )

ありがとう...

4

1 に答える 1

5

「子」プロセスのようなものはありません。タスクを送信するプロセス (セロリ ワーカー、セロリ ビートなどを含む任意の Python プロセス) と、タスクを処理するワーカーがあります。

を除くすべてのタスク シグナルtask_sentは、タスクを処理するワーカーで実行されます。実際、他の場所では実行できない可能性があります。Celery シグナル (Django シグナルなど) は、オペレーティング システム イベントや Celery タスクとは異なります。Celery タスクは、あるプロセスで発生し、別のプロセスで何かをトリガーすることができます。それらは元のプロセスと同じプロセスで処理されます。signalPython 標準ライブラリモジュールとは関係ありません。

于 2013-07-19T08:21:05.453 に答える