私はセロリ内で実行中のタスクを終了した後、いくつかのものをクリーンアップしようとしています。Celery + Pythonでは、task_revoked関数からタスクパラメータにアクセスするにはどうすればよいですか?
@app.task()
def foo(bar, baz):
pass
:タスクは次のように定義されている場合例えばので:どのように私は仕事関数が呼び出されたパラメータへのアクセスを得ることができ、タスク取り消された関数本体内部
1):私は現在2つの問題点を打っています
コードの中でbar
とbaz
にアクセスするにはどうすればよいですか?
2)私はタスクがX以外のものである場合にのみ、タスクを終了したいと思います。つまり、タスクを片手で調べ、もう一方の状態を設定することです。状態を検査することはできますが、私はタスク関数本体の中のコンテキストの周りに頭を上げるのが難しいです。
私はこのようなFOOを定義する場合:
@app.task(bound=True)
def foo(self, bar, baz):
pass
と言うから、それを呼び出す....フラスコのようなfoo(bar, baz)
、その後、私はデコレータがないことを意味する、第三パラメータが期待されていることをエラーが発生します自己パラメータを通して自動的にコンテキストを追加しないでください。
アプリは、単にあなたが要求オブジェクトからタスクの引数を取得することができ、事前
事はセロリのドキュメントは、クラスの相互作用のいくつかの並べ替えを示したが、それ以外の詳細を与えないです。私がクラス内で自分の関数を押してコールしようとすると、自己はデコレータが何も追加していないことを示唆する状態引数を持たないでしょう –
@omu_negruコードに誤字があるように見えます更新された回答。実際にそれをしたのは – ChillarAnand
です。ありがとうたくさんの男は、それをキャッチしていないだろう –