【发布时间】:2012-11-29 14:37:43
【问题描述】:
我从 appengine 中得到了一个我完全没想到的响应。
根据 BigQuery 文档,我得到的不是“bigquery#queryResults”类型的响应,而是
u'basePath': u'/bigquery/v2/', u'kind': u'discovery#restDescription',....
这似乎只发生在需要 10-15 秒及以上的查询上,我怀疑这是与 Appengine 动态 60 秒超时的一些奇怪交互。
我在 python27 上运行,并使用 google-api-python-client 来处理请求。
更新
尝试了其他一些场景:
在后端运行它 - 没有应用程序引擎请求超时 - 同样的事情:大约 9.8 秒的请求返回发现 json
再次在 dev (localhost) 中运行它,确保一切正常
最有趣,以更短的 4 秒超时(与之前的 35 秒相比)运行它会在 之后产生相同的发现回复相同的 9.8s 间隔
【问题讨论】:
-
您能否向我们展示您的一些代码,也许还有完整的堆栈跟踪?这可能指向 Python 客户端库中的错误。
-
@JasonHall 你有什么特别感兴趣的吗?最终,它只是一个使用 server2server 凭据的 service.jobs().query(...).execute() 调用,否则效果很好。这发生在 Appengine 上,而不是本地开发服务器上。我不确定您指的是哪个堆栈跟踪 - 我得到的不是异常,而是从调用中返回的。
-
discovery#restDescription来自 Discovery API,当您调用build()时 Python 客户端会使用它来生成能够调用 BigQuery API 的方法。因此,听起来您收到的响应来自 Discovery API 调用,而不是 BigQuery。 -
我自己想出了这么多。问题是为什么这个响应而不是我正在使用的 API 记录的响应,如果它指示错误,那么错误是什么?
标签: google-app-engine google-bigquery