2017-11-08 5 views
0

RabbitMQをブローカとして、Redisをバックエンドとして使用しているCeleryタスクを設定しました。実行後、私のRedisサーバーはまだ多くのメモリを使用していたことに気付きました。検査の結果、作成されたタスクごとにキーが残っていることがわかりました。Celeryの実行後もRedisにデータが残っています

セロリに応答を受け取った後にのみこれらのキーをクリーンアップする方法はありますか?私はいくつかのMessageBrokersがacksを使用していることを知っています、セロリのredisバックエンドに相当するものはありますか?

答えて

0

残念なことに、セラーリーズはバックエンドのための嫌悪感を持っていないので、私のプロジェクトの最善の解決策は、私がそれらを済ませた後に私の応答を忘れることでした。

0

はい、result_expiresを使用してください。マニュアルに書かれたように、そのセロリビートは、同様に実行する必要がありますのでご注意ください。

内蔵の定期的なタスクはセロリビートが有効になっていると仮定して、この時間(celery.backend_cleanup)の後に結果を削除します。タスクは毎日午前4時に実行されます。

+0

非同期の結果でgetが呼び出された後に、それを行う方法はありますか?私の現在の解決策は、私が結果を完了した後に忘れることです。 – asbumste

+0

値を1(秒)に設定すると、タスクの終了直後に削除されます – ItayB

+0

代わりに、必要がない場合はバックエンドの結果を使用しないでください。 – ItayB

関連する問題