可以/应该重试http read_timeout吗?

时间:2015-10-29 13:54:05

标签: ruby http language-agnostic timeout

我在一个通常会导致大量连接超时问题的网络上,并且我偶尔会遇到读取超时问题。每当发生连接超时时重试代码都会解决连接服务器时出现的问题。每当我得到read_timeout,或者响应被破坏时,重试代码是否安全?我使用Ruby和Net :: HTTP客户端,但我想这也适用于其他语言。

1 个答案:

答案 0 :(得分:1)

read_timeout表示服务器未在预期超时内发送任何数据。响应被破坏的可能性较小,因为这是TCP。

要回答是否安全重试取决于您正在执行的操作和/或保证您正在与之交互的服务。

一般来说,GET应该可以安全重试。 POST / PUT可能需要特殊处理(即在决定重试之前重新读取某些状态),因为这通常意味着服务器上的某些内容发生了变化。