2012-09-14 6 views
6

App Engineのプッシュキューは一般にFIFO queueですが、リンクされたドキュメントからわかるように、キューのタスクのバックログが大きい場合、スケジューラは新しいタスクをキューの先頭にジャンプさせて待ち時間を短縮する。GAEのプルキューは一貫したFIFO動作を示しますか?

この先読みは、大量の負荷がかかるアプリケーションには意味がありますが、FIFOの動作が一貫しているとは限りません。

ここで問題は、プルキューはどうですか?上記の動作は、プルキューでは意味がありますが、プルキューではあまり意味がありません。なぜなら、プルキューからタスクをリースする責任と、作業者の数を増やす責任がアプリ自体にまで及んだからです。キューの先行動作がプルキューに存在しない場合は、プルキューが一貫してFIFO動作を示していることを意味しますか?

さらに、私はofficial pull queue docsのタスクの順序についてのドキュメントを見つけることができないようです。

答えて

1

いいえどちらのプルキューにも順序保証はありません。

通常、最も古いETAのタスクは最初にリースされますが、そのような場合は保証されません。あなたはアプリケーションであり、あなたのキューから任命されたタスクを任意の順序で扱うことができるはずです。

+0

ありがとうございました。私は堅い保証はないが、最も古いETAのタスクが最初にリースされるのはいかに典型的なのか理解していますか?言い換えれば、予想外の事象(例えば、ネットワーク待ち時間の急増、インスタンスのクラッシュなど)がない場合、プルキューはタスクを再順序付けすることができるスケジューラ上の特別なルールを有するか? –

+0

私はあなたがここで何をしているのか分かりません。保証された注文はありません。タスクは任意の順序で取得されると想定する必要があります。 –

0

これは非トライバルの問題です。 Googleのエンジニアは、プルキーの非頻繁な非FIFOスケジューラの注文として予測できるプルキューストプロセスよりも大きな利益があるかどうかを自問する必要があります。

関連する問題