問題
1.Google App Engine で実行されている sns サービスがあります。
2.snsサービスはバックエンド側としてgo to runを利用している
3.sns サービスは、crob ジョブを使用して Api A を要求しています。
4.Api A は、別の http リクエスト (Api B へのリクエスト) を taskqueue に追加しています。
5.Api Aのリクエスト直後にタスクキューが実行される
6.Api Bのリクエストが実行される
7.Api B はコード 308 で応答しました。
問題の概要
ジョブ cron (Api A のリクエスト) -> Api A -> タスク キュー (Api B のスタック リクエスト) -> Api B -> 一部の実行
Api A は 200 で応答 Api B は 308 で応答
質問
Api B が 308 のコードで応答するのはなぜですか?
補体
ちなみに以下のシークエンスは成功
post man (Api A のリクエスト) -> Api A -> Task queue (Api B のリクエスト) -> Api B -> 一部の実行
Api A は 200 で応答 Api B は 200 で応答
ポストマンを使用して Api A をリクエストすると、Api B に対する次のリクエストは 200 で応答されました
私がタスクキューで行った方法は次のようなものです
params := url.Values{}
params.Set("dollSpaces", strings.Join(dollSpaces, ","))
t := taskqueue.NewPOSTTask("/path", params)
req.Header.Set("X-AppEngine-QueueName", "mailqueue")
c := appengine.NewContext(req)
taskqueue.Add(c, t, "my queue")
Google Cloud Platform からのログは次のようなものです
Api A の応答
2019-01-01 10:00:00.001 JST
GET
200
193 B
577 ms
AppEngine-Google; (+http://code.google.com/appengine)
/path/ApiAPath
0.1.0.1 - - [01/Jan/2019:10:00:00 +0900] "GET /path/ApiAPath HTTP/1.1" 200 193 - "AppEngine-Google; (+http://code.google.com/appengine)" "aaa.aaa.com" ms=577 cpu_ms=3 cpm_usd=2.8039999999999998e-8 loading_request=0 instance=asda1231313asdasd123123asda123 app_engine_release=1.9.71 trace_id=123123123dsfasf123123zafasdasd
Api B の応答
2019-01-01 10:00:00.100 JST
POST
308
95 B
2 ms
AppEngine-Google; (+http://code.google.com/appengine)
/ApiBPath
0.1.0.2 - - [01/Jan/2019:10:00:00 +0900] "POST /ApiBPath HTTP/1.1" 308 95 http://aaa.aaa.com/path/ApiAPath "AppEngine-Google; (+http://code.google.com/appengine)" "aaa.aaa.com" ms=2 cpu_ms=221 cpm_usd=1.3802e-8 loading_request=0 instance= asda1231313asdasd123123asda123 app_engine_release=1.9.71 trace_id= 123123123dsfasf123123zafasdasd