23

これまでのところ、プッシュキューとプルキューの違いを本当に明確に説明してくれる人は誰も (GAE のドキュメントでさえ) いません。

私の理解では、タスク キュー API を使用すると、作業をキューに入れることができるタスク キューを定義できます。どういうわけか、これは GAE の自動スケーリング機能と連動するため、これらのキューからタスクを消費するワーカー スレッドの数を明示的に管理する必要はありません。GAE がそれを行うだけです。

しかし、プッシュ キューとプル キューの違いに関する「キングズ イングリッシュ」の説明はどこにもありません。「プッシュキュー」プッシュとは何ですか? 「プル キュー」プルとは何ですか? 両方とも内部で構成されていqueues.xmlますか?

4

1 に答える 1

31

プル キューでは、タスクをキューにエンキューし、コードでそれらをプルする必要があります。キューからタスクをリースし、タスクを削除することでタスクをプルします。タスクを削除せず、リース期間が満了した場合、システムはタスクをキューに戻します。

たとえば、プル キューを使用して、一緒に処理できる複数のワーク ユニットを集約できます。別の例: AppEngine ができない方法でタスクを処理するために、外部マシン (EC2 や gCompute など) によってプルされるタスクをキューに入れます。

プッシュ キューでは、タスクをキューに入れますが、AppEngine はそれらをデキューし、タスクで指定されたハンドラーで実行します。タスクの処理速度、タスク実行の失敗を制御する方法を制御できます。AppEngine は、処理を行うために使用するインスタンス (スレッド) の数を決定します。

于 2012-09-07T12:29:47.033 に答える