Go での push キューの使用

このページでは、push キューの概要について説明します。push キューではタスクを実行するために、HTTP リクエストを App Engine ワーカー サービスにディスパッチします。リクエストは一定の速度で送信されます。タスクが異常終了した場合、サービスはリクエストを再送信して、タスクを再試行します。使用するすべての種類のタスクに対してハンドラを用意する必要があります。1 つのサービスで、複数の種類のタスクに対応する複数のハンドラを使用できます。また、複数のサービスを使用して、複数の種類のタスクを管理することもできます。

このアプリケーションがタスクをオフロードするタスクキュー サービスは、HTTP を使用してタスクをワーカーに送信します

タスクの期限

ワーカー サービスでは、push タスク リクエストを受け取ると、ワーカー サービスのスケーリング タイプに応じた期限までにそのリクエストが処理され、HTTP レスポンスが送信される必要があります。

自動スケーリング サービスは、10 分以内に完了する必要があります。手動または基本スケーリング サービスの場合は、最大 24 時間まで実行できます。

200~299 の HTTP レスポンス コードはタスクが成功したことを示し、他のすべての値はタスクが失敗したことを示します。タスクが期限内にレスポンスを返せなかった場合、または無効なレスポンスの値を返した場合、タスクは再試行されます。

失敗したタスクの再試行

push タスク リクエスト ハンドラが 200~299 以外の HTTP ステータス コードを返した場合、またはタスクの期限内にレスポンスを返せなかった場合、キューは成功するまでタスクを再試行します。アプリケーションが大量のリクエストで飽和状態になるのを避けるために、失敗したタスクの再試行頻度はシステムによって徐々に減らされますが、少なくとも 1 時間に 1 回は再試行を繰り返すようにスケジュールが設定されます。

push キューの使用

push キューを使用するには、少なくとも以下の作業が必要です。

  • プログラムによってタスクを作成し、作成したタスクをデフォルトの push キューまたは作成済みの 1 つ以上の名前付き push キューに追加します。
  • タスクのリクエストを処理するハンドラを作成し、そのハンドラを App Engine サービスに割り当てます。

必要に応じて、以下の作業も行います。

push キューを使用すると、アプリケーションに追加の割り当てが適用されます。

次のステップ