23

Google App Engineのタスクキューには次のような構成があります(例)

  <queue>
    <name>mail-queue</name>
    <rate>5/m</rate>
    <bucket-size>10</bucket-size>
  </queue>

ここで、「バケットサイズ」とはどういう意味ですか?GoogleAppEngineのドキュメントでこれに関する包括的なドキュメントを見つけることができませんでした。

これを10として指定すると、100個のタスクが瞬時にキューに入れられた場合、そのうちの10個だけがキューに入れられ、残りは無視されますか?

4

1 に答える 1

35

バケットサイズはここで完全に説明されています:

キューの処理のバースト性を制限します。つまり、バケットサイズが大きいほど、キューの実行速度が急上昇します。たとえば、レートが5 / sでバケットサイズが10のキューについて考えてみます。そのキューがしばらく非アクティブであり(「トークンバケット」がいっぱいになるのを許可)、20個のタスクが突然キューに入れられます。 10個のタスクをすぐに実行できます。ただし、次の1秒では、トークンバケットが使い果たされ、指定された5 / sの速度で補充されているため、実行できるタスクはあと5つだけになります。

キューにbucket_sizeが指定されていない場合、デフォルト値は5です。

あなたの場合、100個のメッセージがキューに入れられた場合、直接実行されるのは10個だけで、次の1分ごとにさらに5個が実行されることを意味します。メッセージが失われることはありませんが、バケットのサイズとレートが低すぎると、メッセージはキューに入れられます。

于 2010-09-18T08:07:18.900 に答える