我一直在为我的 rails 项目使用neography gem,有时我最终会收到以下错误:
<Excon::Error::Socket: end of file reached (EOFError)> #error inspect
有人可以帮我解决这个错误吗?此外,我无法根据我的要求重现此错误。
谢谢
我一直在为我的 rails 项目使用neography gem,有时我最终会收到以下错误:
<Excon::Error::Socket: end of file reached (EOFError)> #error inspect
有人可以帮我解决这个错误吗?此外,我无法根据我的要求重现此错误。
谢谢
这种错误通常是由于您正在与之交互的服务器的连接超时造成的。Excon 尝试在可能的情况下重用连接(因此得名,指的是扩展连接),这通常是首选。不幸的是,它有时会导致这样的问题。
缺乏可重复性听起来也可能与超时有关,特别是服务器有时会因不活动而不是纯粹的时钟时间而超时(在这种情况下,它可能仅在空闲时发生。
有几种可能的方法来解决这个问题,尽管它们可能更适合在neography gem 中而不是在您的代码中(并且它们取决于特定请求的上下文)。
第一个也是最好的选项只有在特定请求是幂等的情况下才真正可用,并且将:idempotent => true
选项用于请求。幂等的存在是因为网络本身并不完美,所以它允许失败的请求在大多数情况下简单地自动重试。
一个不太理想但更通用的答案是为每个请求创建一个新连接。这应该适用于任何请求(幂等或非幂等),但会占用更多连接(无论如何这对您来说可能并不重要)并且性能较低(由于建立连接的成本,特别是如果需要 https 握手)。
希望这有助于描绘更清晰的画面,我个人对neography并不熟悉,但我对excon非常熟悉,所以我认为这应该是相当准确的。