使用AppEngine Go,我在读取40k实体的表格时始终看到此错误:
API错误5(datastore_v3:TIMEOUT):数据存储区操作超时,或者数据暂时不可用。
这发生在查询解雇的400毫秒内。
除了对挂钟施加限制外,是否有其他可能导致此错误的内容?
谢谢!
答案 0 :(得分:6)
原来每个API调用都有5秒超时。如果您需要更多时间,可以像这样包装上下文:
ctx := appengine.Timeout(appengine.NewContext(req), 30*time.Second)
答案 1 :(得分:0)
上述答案已弃用,对于较新版本的Go,请参阅此处的README:
appengine.Timeout已被删除。改为使用context.WithTimeout。
https://github.com/golang/appengine#2-update-code-using-deprecated-removed-or-modified-apis
让每个人都更轻松,这是我们正在使用的一个例子:
timeout := 300 * time.Second
c, cFunc := context.WithTimeout(c, timeout)
重要的是在不再需要上下文之后调用cFunc()
方法,以避免上下文泄漏。
享受。