我用py2neo 2.0执行了长时间运行的(5分钟)Cypher查询:graph.cypher.run(query)
或result = graph.cypher.execute(query)
60秒后查询失败,并出现来自HTTPstream的套接字错误:ERROR:httpstream:! SocketError: timed out
当我使用Cypher交易时,也会发生同样的情况。使用相同的查询和py2neo 1.6.4不会发生这种情况。我可以增加py2neo等待响应的时间吗?我没有在文档中找到任何东西。
更新资料
我在socket_timeout
中找到了一个硬编码的py2neo.packages.httpstream.http
。将其设置为更高的值可以避免SocketError:
from py2neo.packages.httpstream import http
http.socket_timeout = 9999
result = graph.cypher.execute("MATCH (g:Gene) RETURN count(g)")
我可以以某种方式为单个查询设置超时时间吗?
最佳答案
当前无法调整单个查询的超时,因为此设置适用于连接级别,并且一个连接显然可以用于许多查询。不过,您正在使用的socket_timeout
是全局调整超时的正确方法。