タスクキューの概要

このページでは、タスクキューの概要とその使い方について説明します。タスクキューを使用すると、アプリケーションは、タスクと呼ばれる作業をユーザー リクエストの外で非同期に実行できます。アプリがバックグラウンドで作業を実行する必要がある場合、タスクがタスクキューに追加されます。そのタスクはワーカー サービスによって後で実行されます。

push キューと pull キュー

タスクキューには push と pull の 2 種類があります。タスクキュー サービスがタスク リクエストをワーカー サービスにディスパッチする方法は、キューの種類ごとに異なります。

push キューでは、HTTP リクエストを App Engine ワーカー サービスに送信して、タスクを行います。こうしたリクエストを信頼性の高い安定した速度で送信し、信頼性の高いタスク実施を保証します。タスクがキューから送信される頻度を制御できるため、ワーカーのスケーリング動作、つまりコストを制御できます。

タスクは App Engine サービスをターゲットにしたリクエストとして実行されるため、厳しい期限があります。自動スケーリング サービスで処理されるタスクは 10 分以内に終了する必要があります。基本および手動スケーリング サービスで処理されるタスクは、最大 24 時間実行できます。

pull キューは PHP ではサポートされません。

ヒント: pull キューの代わりに Google Cloud Pub/Sub が役に立つ場合があります。

タスクキューのすべてのタスクは非同期的に行われます。タスクを作成するアプリケーションは、タスクをキューに渡します。元のアプリケーションには、タスクが完了したかどうか、または成功したかどうかは通知されません。

ワーカーでタスクの処理に失敗した場合、タスク キュー サービスによって再試行メカニズムがキューに提供します。そのため、タスクは一定の回数だけ試行できます。

使用例

push キュー

push キューの典型的な使用例は「スロー」処理です。ソーシャル ネットワークのメッセージング システムでは、ユーザーがメッセージを送信するたびに、送信者のフォロワーを更新する必要があります。このオペレーションには相当の時間がかかる場合があります。push キューを使用すると、アプリケーションによって処理のためにワーカー サービスに送信された各メッセージに対するタスクを、到着したときにエンキューできます。ワーカーはタスク リクエストを受信すると、送信者のフォロワーのリストを取得し、フォロワーごとにデータベースを更新できます。データベース更新のたびに別の push タスクをキューに追加すると、ワーカーの効率が向上します。

push キューの別の使用例は、スケジュールされたタスクです。広告キャンペーンを実装するアプリでは、メールを送信するために作成したタスクを、指定した時間になるまで保留する指示付きで push キューに追加できます。指定した時間になると、タスクキュー サービスがリスクエストの発行を開始し、タスクを実行します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

PHP の App Engine スタンダード環境