我们并行运行多个短查询,并达到了 10 秒的限制。
根据文档,如果我们达到每个项目每个用户 10 个 API 请求的限制,则可能会发生限制。我们发送一个“开始查询作业”,然后我们调用“getGueryResutls()”,timeoutMs 为 60,000,但是,我们在大约 1 秒后得到响应,我们在 JSON 响应中查找 JOB Complete,因为它不是在那里,我们需要多次发送 GetQueryResults() 并达到阈值,这会导致错误,而不是减速。示例代码如下。
我们的问题是这样的: 1. 什么是“用户”?它是 appengine 用户吗?它是我们可以放在连接字符串或查询中的用户 ID 吗?2. 真的是 BigQuery 的 API 项目吗?
3. 行为是什么?我们收到一个错误:“超出速率限制:此 user_method 的用户/方法 api 请求限制太多”,而不是文档所说的限制行为,我们所有的过程都失败了。4. 如下代码所示,为什么我们在 1 秒后得到响应而不是根据我们的超时时间?我们做错了吗?
非常感谢
这是一个示例代码:
while (res is None or 'jobComplete' not in res or not res['jobComplete']) :
try:
res = self.service.jobs().getQueryResults(projectId=self.project_id,
jobId=jobId, timeoutMs=60000, maxResults=maxResults).execute()
except HTTPException:
if independent:
raise