Excon :: Error :: Socket:文件结束(EOFError),neography gem

时间:2017-07-24 07:30:36

标签: neo4j neography graphenedb excon

我一直在为我的rails项目使用neography gem,有时我最终得到以下错误:

<Excon::Error::Socket: end of file reached (EOFError)> #error inspect

有人可以帮我解决此错误吗?此外,我无法根据我的要求重现此错误。

由于

1 个答案:

答案 0 :(得分:2)

这种错误通常是由您正在与之交互的服务器的连接超时引起的。 Excon尝试在可能的情况下重用连接(因此名称,指的是EXtended CONnections),这通常是首选。不幸的是,它有时会导致这样的问题。

缺乏可重复性也听起来可能与超时有关,特别是服务器有时会因不活动而超时而不是纯时钟时间(在这种情况下,它可能只在空闲时发生。

有几种可能的方法可以解决这个问题,尽管它们可能更适合neography gem而不是代码(并且它们取决于特定请求的上下文)。

如果特定请求是幂等的,那么第一个也是最好的选项才真正可用,并且对请求使用:idempotent => true选项。幂等是存在的,因为网络固有地不完美,所以它允许失败的请求在大多数情况下简单地自动重试。

一个不太理想但更通用的答案是为每个请求创建一个新连接。这应该适用于任何请求(幂等或非幂),但会耗尽更多连接(无论如何对你来说无关紧要)并且性能较差(由于建立连接的成本,特别是如果需要https握手)。

希望有助于描绘更清晰的画面,我并不熟悉neography,但我对excon非常熟悉,所以我认为这应该相当准确。