问题
1。我有一个在Google App Engine上运行的sns服务
2。sns服务正在使用go作为后端运行
3。sns服务正在使用crob作业来请求Api A
4。Api A正在向任务队列添加另一个http请求(对Api B的请求)
5。任务队列在Api A请求后立即执行
6。Api B的请求已执行
7。Api B响应代码308
问题摘要
job cron(对Api A的请求)-> Api A->任务队列(对Api B的堆栈请求)-> Api B->一些执行
Api A回应200 Api B回复了308
问题
为什么Api B会以308码回应?
补语
通过以下顺序成功
邮递员(请求Api A)-> Api A->任务队列(请求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