2

私のセロリデータベースのバックエンド設定は次のとおりです。

CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "mysqlite.db"

メッセンジャとして RabbitMQ を使用しています。

結果がデータベースに保存されているようには見えませんが、タスクの完了後に結果を読み取ることができます。それらはメモリまたはRabbitMQキャッシュにありますか?

同じ結果を複数回読み取ろうとしたことはないので、一度読み取ってからプーフするかもしれません!

4

2 に答える 2

2

CELERY_RESULT_DBURI は、Django のものではなく、sqlalchemy の結果バックエンド用です。Django は常に DATABASES 設定 (または古い Django バージョンの場合は DATABASE_* 設定) で構成されたデフォルトのデータベースを使用します。

于 2012-04-20T15:24:22.230 に答える
0

セロリ デーモンは問題なく動作しますが、タスクの結果を収集するのに苦労しています。task_result.get() はタイムアウトを引き起こします。そして、task.state は常に PENDING です..(ただし、ジョブは完了しています)、個別の sqlite db、つまりワーカーによって共有される単一の postgres db を試しました。しかし、私はまだ結果を得ることができません。CELERY_RESULT_DBURI は私には役に立たないようです (セロリ 2.5 の場合) 新しい構成だと思います。どんな提案も大歓迎です...


編集:それはすべて私のせいです:デコレータを使用してタスクに追加のパラメータを与えます。ignore_results = Trueパラメータはこの問題を引き起こします。私はこのキーを削除しましたが、それは魅力のように機能します:)

于 2012-07-20T13:11:08.960 に答える