Java で pull キューを使用する
bookmark_borderbookmark
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このページでは、App Engine スタンダード環境での pull キューの概要について説明します。
push キューでは、タスクはキューの構成に基づいてワーカー サービスに配信されます。pull キューでは、ワーカー サービスがキューに対してタスクに関する「問い合わせ」を行う必要があります。キューは、一定の期間タスクを処理する権限をワーカーに許可します。このプロセスをリースといいます。

pull キューを使用すると、関連するタスクをタグでグループ化し、特定のタグを持つ複数のタスクを一度に pull するようにワーカーを構成することもできます。このプロセスは「バッチ処理」と呼ばれます。
リースが期限切れになる前にワーカーがタスクを完了できない場合、リースを更新することも、別のワーカーが取得できるように解放することもできます。タスクに関連付けられた処理が完了したら、ワーカーはそのタスクを削除する必要があります。
pull キューを使用する場合は、push キューで自動的に実行される関数をコード側で処理する必要があります。
- ワーカーのスケーリング
- コードは、処理量に応じてワーカーの数をスケールする必要があります。コード側でスケーリングを行わないと、処理するタスクがない場合に、コンピューティング リソースを浪費するリスクがあります。処理するタスクが多すぎる場合も、レイテンシが発生するリスクがあります。
- タスクの削除
- 処理が終了したら、コードで明示的にタスクを削除する必要があります。push キューでは、App Engine でタスクが自動的に削除されます。処理の終わった pull キューのタスクをワーカーが削除しないと、別のワーカーがそのタスクを再度処理してしまいます。タスクがべき等でない場合は、コンピューティング リソースを浪費してエラーが発生するリスクがあります。
App Engine スタンダード環境で pull キューを作成するには、queue.xml
という名前の構成ファイルでプロパティを設定します。
pull キューのワークフロー
pull キューからタスクを処理するワーカーは、App Engine スタンダード環境で実行されるサービス内で定義する必要があります。
ワークフローは次のとおりです。
queue.xml
を使用して pull キューを作成します。
- タスクを作成してキューに追加します。
- 事前に作成しておいたワーカーが、TaskQueue を使用してタスクをリースします。
- App Engine が、リース応答でワーカーにタスクデータを送信します。
- ワーカーがタスクを処理します。リースの期限までにタスクを実行できなかった場合、ワーカーはリース期間を変更できます。リースが期限切れになると、そのタスクは別のワーカーにリースできるようになります。
- タスクの処理が正常に完了したら、ワーカーがそのタスクを削除します。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-03-13 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["わかりにくい","hardToUnderstand","thumb-down"],["情報またはサンプルコードが不正確","incorrectInformationOrSampleCode","thumb-down"],["必要な情報 / サンプルがない","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-13 UTC。"],[[["Pull queues in the App Engine standard environment require worker services to actively request tasks, unlike push queues where tasks are automatically delivered."],["Workers using pull queues can utilize task grouping with tags and batching to handle related tasks efficiently."],["Pull queue workers must manage scaling and explicitly delete tasks after processing to prevent resource waste and errors."],["The pull queue workflow involves creating queues and tasks, leasing tasks to workers, processing tasks, and then deleting completed tasks."],["Pull queues are configured using a `queue.xml` file within the App Engine standard environment."]]],[]]