【发布时间】:2020-07-20 16:19:19
【问题描述】:
我了解 BigQuery 的默认超时时间为 1 分钟。我想知道在调用 Operation 方法期间或在初始化 BigQuery 客户端时是否有任何方法可以覆盖默认超时值。我在 BigQuery 文档中看到了作业的超时选项,但在我的情况下,我在没有作业的情况下集成到 BigQuery。
我尝试将选项中的 'timeoutMs:1' 传递给方法调用,但没有效果任何指针都会有所帮助
【问题讨论】:
我了解 BigQuery 的默认超时时间为 1 分钟。我想知道在调用 Operation 方法期间或在初始化 BigQuery 客户端时是否有任何方法可以覆盖默认超时值。我在 BigQuery 文档中看到了作业的超时选项,但在我的情况下,我在没有作业的情况下集成到 BigQuery。
我尝试将选项中的 'timeoutMs:1' 传递给方法调用,但没有效果任何指针都会有所帮助
【问题讨论】:
尝试将其作为作业而不是查询运行:
const [job] = await bigquery.createQueryJob(options);
console.log(`Job ${job.id} started.`);
// Wait for the query to finish
const [rows] = await job.getQueryResults();
// Print the results
console.log(`Rows: ${rows}`);
另外,timeoutMs 以毫秒为单位。以下是选项对象中可用选项的完整列表: Method: jobs.query
【讨论】:
正如您在官方source code 中看到的,query 操作指的是job.query,并提到我们可以在此page 看到完整的选项设置。
在提到的页面中,我们可以找到关于timeoutMs的以下信息:
可选。等待查询完成的时间,以毫秒为单位, 在请求超时并返回之前。请注意,这只是一个 请求超时,而不是查询。如果查询需要更长的时间 运行超过超时值,调用返回没有任何结果,并且 将“jobComplete”标志设置为 false。你可以打电话 jobs.getQueryResults() 等待查询完成并读取 结果。默认值为 10000 毫秒(10 秒)。
由于该页面被提及为完整参考,因此我认为这是默认行为。
【讨论】: