2011-09-24 14 views
6

私は予防的キャッシングを実装するためにCeleryを使用するDjangoのWebサイトを実行しています。つまり、ユーザーが要求する前でも結果を計算してキャッシュします。rate_limitはどのようにセロリーで実施されていますか?

しかし、私のセロリのタスクの1つは、ある状況では、たくさん呼ばれることがありました(実際には、実際には完了したよりもずっと早いと思います)。私はそれが実際には有用ではないときに多くのリソースを消費しないようにそれをrate_limitしたいと思います。

しかし、Celeryのcelery.task.base.Task.rate_limit属性がどのように強制されているか最初に理解したいと思います。仕事は拒否されますか?遅れて遅れて実行されていますか?

ありがとうございます!

答えて

16

レート制限されたタスクは、決して削除されません。実行されるとすぐに実行されるように、ワーカーの内部でキューに入れられます。

トークンバケットアルゴリズムは、パケットをドロップすることについて何も指定しません(オプションですが、Celeryはそれを行いません)。

関連する問題