5

Celery フレームワークの上でタスクを実行するためのフレームワークを構築しています。

最近実行されたタスクのリスト (最近 2 ~ 7 日間) を表示したいと思います。

API を見ると、app.backendオブジェクトを見つけることができますが、タスクを取得するためのクエリを作成する方法がわかりません。

たとえば、Redis やデータベースなどのバックエンドを使用できます。データベースに SQL クエリを明示的に書き込みたくありません。

API を使用してタスク履歴/結果を操作する方法はありますか?

Flower を使用しようとしましたが、イベントしか処理できず、開始前の履歴を取得できません。

4

2 に答える 2

5

永続的なオプションを使用できます。例:flower -A ctq.celery --persistent=True

于 2016-08-04T10:08:46.893 に答える
4

タスクの結果を Redis などのバックエンドに保持する必要があります。Celery のドキュメントには、これを行う方法に関する情報が含まれています。

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#Keeping-results

また、デフォルトでは 1 日後に結果が破棄されるため、 CELERY_TASK_RESULT_EXPIRES構成パラメーターを設定する必要があります。

これを行うと、Flower はいつから開始されたかに関係なく、タスク実行の履歴を表示します。

于 2016-03-01T15:50:15.063 に答える