这似乎是一个常见的问题,它偶尔发生在我的加载工作中。当它发生时没有响应,但似乎数据仍然被加载,我想知道在我的程序中最好的做法是什么?我可以一直忽略它或等待几秒钟然后继续吗?
由于
答案 0 :(得分:3)
运行bigquery作业时有两种方法可以获得错误,正确的处理取决于您是如何得到错误的:
errorResult
的作业,表明作业失败。在第二种情况下,您的选项很简单,因为您知道作业失败了。如果作业是加载作业,则不应该修改表。在第一种情况下,当您获得可重试的HTTP错误代码(417超时,500内部错误,503后端错误等)时,它有点棘手,因为错误可能有通信错误,并且您不会知道服务器是否成功获得了消息。可以肯定的是指定自己的jobId。由于作业ID必须是唯一的,因此您可以在发生通信错误时重新尝试再次发送相同的作业,并且您不必担心它将运行相同的两次。
重申:
如果您收到带有HTTP 503
的{{1}}响应,则表示存在临时网络状况的连接错误。但是,这并不意味着你的工作失败了。
如果您可以查找作业,并且作业结果出现reason=backendError
错误,但出现错误消息,显示"后端错误。工作中止"这意味着你的工作失败了。重试应该是安全的。