2014-11-22 10 views
15

wykonam długo działa (5 mintues) zapytanie szyfru z py2neo 2.0:py2neo 2.0: BŁĄD: httpstream :! Błąd łączy: limit czasu

graph.cypher.run(query) lub result = graph.cypher.execute(query)

Zapytanie nie powiedzie się po około 60 s z błędem kielichowej z httpstream:

ERROR:httpstream:! SocketError: timed out

To samo dzieje się, gdy używam transakcji Cypher. Tak się nie stało z tym samym zapytaniem i py2neo 1.6.4. Czy mogę wydłużyć czas oczekiwania py2neo na odpowiedź? Nie znalazłem niczego w dokumentach.


Aktualizacja

znalazłem ciężko kodowane socket_timeout w py2neo.packages.httpstream.http. Ustawienie go na wyższą wartość pozwala uniknąć błędu SocketError:

from py2neo.packages.httpstream import http 
http.socket_timeout = 9999 

result = graph.cypher.execute("MATCH (g:Gene) RETURN count(g)") 

Czy mogę w jakiś sposób ustawić limit czasu dla pojedynczego zapytania?

+0

Czy możesz zmienić to ustawienie gdzieś w plikach neo4j (poza skryptem)? Jak w jednym z plików w folderze conf? – NumenorForLife

Odpowiedz

9

Obecnie nie ma możliwości skorygowania limitu czasu dla pojedynczych zapytań, ponieważ to ustawienie ma zastosowanie na poziomie połączenia, a jedno połączenie może oczywiście być używane w przypadku wielu zapytań. socket_timeout, którego używasz jest prawidłowym sposobem na ustawienie limitu czasu na całym świecie.