问题
1.我有一个在 Google App Engine 上运行的 sns 服务
2.sns服务使用go作为后端运行
3.sns服务正在使用crob作业请求Api A
4.Api A 正在将另一个 http 请求(对 Api B 的请求)添加到任务队列中
5.Api A请求后立即执行taskqueue
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 的代码响应?
补充
顺便说一下下面的顺序是成功的
post man (请求 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")
谷歌云平台的日志如下
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