Google Cloud 実践コース / Chapter 03

Cloud Tasks で API と Worker を非同期化

API が処理を Cloud Tasks に登録し、Cloud Run Worker が後から実行する構成を通じて、リトライ可能な非同期処理を設計する章。

TL;DR

  1. Cloud Tasks は HTTP タスクをキューへ積み、指定したターゲットへ配信する。
  2. API と Worker を分離すると、利用者への応答と時間のかかる処理を切り離せる。
  3. Worker は認証を要求し、失敗・再試行・監視を前提に冪等に設計する。

01キューの責務を決める

同期 HTTP で待たせない仕事を Cloud Tasks に移し、タスクのペイロードを定義する。

キューの責務を決めるの構成図
図の矢印は、同期 HTTP で待たせない仕事を Cloud Tasks に移し、タスクのペイロードを定義するという接続または判断を示す。

Cloud Tasks は HTTP タスクをキューへ積み、指定したターゲットへ配信する。

02Worker へ配信する

Cloud Tasks から認証付き HTTP で Cloud Run Worker を呼び出す。

Worker へ配信するの構成図
図の矢印は、Cloud Tasks から認証付き HTTP で Cloud Run Worker を呼び出すという接続または判断を示す。

API と Worker を分離すると、利用者への応答と時間のかかる処理を切り離せる。

03失敗を観測する

リトライ回数や失敗を監視し、重複配信にも耐える処理にする。

失敗を観測するの構成図
図の矢印は、リトライ回数や失敗を監視し、重複配信にも耐える処理にするという接続または判断を示す。

Worker は認証を要求し、失敗・再試行・監視を前提に冪等に設計する。

結論

  1. Cloud Tasks は HTTP タスクをキューへ積み、指定したターゲットへ配信する。
  2. API と Worker を分離すると、利用者への応答と時間のかかる処理を切り離せる。
  3. Worker は認証を要求し、失敗・再試行・監視を前提に冪等に設計する。