使用Java API查询异步作业数据的BigQuery documentation表示,如果我们在没有超时的情况下调用jobs.getQueryResults(jobId)
,我们就不需要轮询结果。但是,根据作业文档here,默认超时为10秒。
我的问题是如何在没有超时的情况下调用getQueryResults
。我应该把一个非常大的数字作为超时参数或参数应该是0?
答案 0 :(得分:0)
“没有超时”你的意思是永远等待吗?
BigQuery使用的底层基础架构(Google API前端)不允许无限期连接。最好的办法是设置合理的超时值,并在超时时重试。
无论如何,这可能是一个很好的最佳做法,因为网络打嗝等事情可能会导致请求中的错误,并且通过重试getQueryResults
操作,您将能够获得结果而无需重新运行查询