バウンティの更新
可能であれば、監視スレッドを含まないソリューションが欲しいのですが。
Inspect
私のアプリのクラスControl
。
i = myapp.control.inspect()
currently_running = i.active()
scheduled = i.scheduled()
しかし、すでに完了したタスクを表示する関数は見つかりませんでした。 task_id
で完了したタスクを検索できるため、この情報には少なくとも一時的にアクセスできる必要があります。
>>> r = my task.AsyncResult(task_id=' ... ')
>>> r.state
u'SUCCESS'
スケジュールされたタスク、アクティブなタスク、および完了したタスクのcompleteリストを取得するにはどうすればよいですか?または、すべてのタスクのリストを一度に作成できますか?
Celery Flower タスク(アクティブ、 終了 、予約済みなど)をリアルタイムで表示します。時間、ワーカー、タイプでタスクをフィルタリングできます。
監視スレッドを必要としないオプションの1つは、Celery on_success
ハンドラーです(ブートステップ機能を使用 .1以降 )-これには、関連情報を独自のデータストアに書き込む必要があります。
より少ないコードで、おそらくより良いオプションは、同様の方法で task_success signal を使用し、後で必要な情報を記録することです。
タスクの完了時にFlowerによって既に維持されている情報をクエリしているため、Flowerオプションの方がおそらく簡単です。 この回答 を参照してください。