- Этот код, похоже, работает с файлом хоста
192.168.1.5
- это IP-адрес хоста - Когда я пытаюсь запустить этот файл из докера, яполучить эту ошибку
Transaction failed and will be retried in 1.092425226678844s (Failed to obtain connection towards 'WRITE' server.)
- Когда я изменяю протокол на
bolt
вместо bolt+routing
, кажется, что он отлично работает в докере.
Есть идеи, что не так?
import traceback
from neo4j import GraphDatabase, basic_auth
class ExecuteQuery:
def __init__(self):
self._driver = GraphDatabase.driver(f"bolt+routing://192.168.1.5:7687", auth=basic_auth("neo4j", "asdf1234"))
def close(self):
self._driver.close()
@staticmethod
def _execute_query(tx, query):
print(f"query: {query}")
result = tx.run(query)
return result.data()
@staticmethod
def do_read(query):
instance = ExecuteQuery()
try:
with instance._driver.session() as session:
result = session.read_transaction(ExecuteQuery._execute_query, query)
finally:
instance.close()
return result
@staticmethod
def do_write(query):
instance = ExecuteQuery()
try:
with instance._driver.session() as session:
result = session.write_transaction(ExecuteQuery._execute_query, query)
except:
print("-----------")
traceback.format_exc()
finally:
instance.close()
return result
d = ExecuteQuery.do_write("CREATE (a:Test {name:'Hello World!'})")
print(d)
d = ExecuteQuery.do_read("MATCH (n:Test) RETURN n")
print(d)