Neo4j Excon::Error::Socket:已到达文件结尾(EOFError),neography gem

Neo4j Excon::Error::Socket:已到达文件结尾(EOFError),neography gem,neo4j,neography,graphenedb,excon,Neo4j,Neography,Graphenedb,Excon,我一直在rails项目中使用neography gem,有时会出现以下错误: <Excon::Error::Socket: end of file reached (EOFError)> #error inspect #错误检查 有人能帮我排除这个错误吗?此外,我无法根据自己的要求再现此错误 谢谢这种错误通常是由于与您交互的服务器的连接超时造成的。Excon尝试在可能的情况下重用连接(因此名称,指扩展连接),这通常是首选。不幸的是,它有时会导致这样的问题 缺乏再现性听起来也可能与

我一直在rails项目中使用neography gem,有时会出现以下错误:

<Excon::Error::Socket: end of file reached (EOFError)> #error inspect
#错误检查
有人能帮我排除这个错误吗?此外,我无法根据自己的要求再现此错误


谢谢

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

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

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

第一个也是最好的选项只有在特定请求是幂等的情况下才真正可用,它将对请求使用
:幂等=>true
选项。之所以存在幂等,是因为网络本身并不完美,所以它允许失败的请求在大多数情况下自动重试

一个不太理想但更通用的答案是为每个请求创建一个新的连接。这应该适用于任何请求(幂等或不幂等),但会占用更多的连接(这对您来说可能并不重要),并且性能较差(由于建立连接的成本,尤其是在需要https握手的情况下)


希望这有助于描绘更清晰的画面,我个人不熟悉neography,但我非常熟悉excon,因此我认为这应该是相当准确的。

非常感谢您花时间编写一份解释清楚的回复。超时是有意义的,因为我一直在使用Heroku提供的服务器免费计划。谢谢艾恩!