0
ログの種類のバックトレースをログに記録したいのですが、これはできますか?結果には親があり、グラフを出力することもできますが、タスク内の親タスクまたはタスクIDは表示されず、要求自体も表示されません。親のタスクIDを各サブタスクに手動で渡す必要がありますか?セロリ - 親タスクのIDを記録するには?
結果:task_idを親と同じ値に設定しても安全ですか?
編集:コード例:理想的に私は、明らかに地元の人々を機能させるにはアクセスできませんログフィルタの内部呼び出しタスクIDを取得したい
@app.task()
def root_task(arg):
if arg:
subtask.delay(arg)
@app.task()
def subtask(arg):
import celery
print(dir(celery.current_task)) # get parent task id here?
print(dir(celery.current_task.request)) # no parent here either
ノート、どちらか私のためにありませんのでbind=True
。
私は十分にはっきりしていなかったと思います。条件付きで 'subtask.delay(...) 'を使って別のタスクを開始するタスクがあります - 私は' subtask() 'コードの中から呼び出し元の' task_id'を記録したいと思います。質問をより明確に編集します。 – Baczek
@Baczek彼らは互いに関係していないので、あなたは 'task_id'を渡す必要があります。しかし、私は、task_idを親の 'task_id'と同じに設定することは良い考えではないと思います。 – ChillarAnand