ログの目的で、セロリ タスクがそれを実行しているワーカーの名前を取得できるようにしたいと考えています。ブローカーに直接クエリを実行するのではなく、タスク内からこれを処理する必要があります。これを行う方法はありますか?それが重要な場合は、RabbitMQ でセロリを使用しています。
9296 次
4 に答える
6
ワーカーを保持するビリヤードを利用する必要があります。
from celery import task
from billiard import current_process
@task
def getName():
p = current_process()
return p.index
次に、プロセスの作成時に ids->names をマップするグローバル ディクショナリを作成します。
于 2014-05-25T15:42:38.687 に答える
3
あなたは元々、-n フラグで入力した名前を探していましたよね? それは initargs 配列にあります。これが得られる回答の修正版です。
from celery import task
from billiard import current_process
@task
def getName():
p = current_process()
return p.initargs[1].split('@')[1]
于 2014-08-19T12:56:22.137 に答える