"""Docstring.""" import connector_neo4j as c from neo4j.api import WRITE_ACCESS """ Start neo4j server locally in a container docker run -p7687:7687 -p7474:7474 -v=$HOME/neo4j/plugins:/plugins -v=$HOME/neo4j/data:/data -v $HOME/neo4j/certificats:/certificates --env=NEO4J_AUTH=neo4j/blerg neo4j:3.5.18 """ # noqa:E501 # check pool status def pool_status(): print('\tConnection pool status...') empty = True for k, v in c.neo4j_driver._pool.connections.items(): for conn in v: print('\tconn => ', conn.stale(), conn.closed(), conn.defunct()) empty = False if empty: print('\tEmpty!') def main(): # initialize connection pool print('\n1 -----') try: pool_status() c._create_session(WRITE_ACCESS) print('created session 1') pool_status() except Exception as e: print(e) print('did you remember to start the server?') exit(1) # make connections invalid print('Take down server now!') input('Press Enter to continue...') # try to do work on bad connections print('\n2 -----') try: pool_status() c._create_session(WRITE_ACCESS) except Exception: print('created session 2 failure') pool_status() # see if self-healing works print('Bring server back up now!') input('Press Enter to continue...') print('\n3 -----') pool_status() c._create_session(WRITE_ACCESS) print('created session 3') pool_status() c.neo4j_driver.close() if __name__ == '__main__': c.configure( 'bolt://localhost:7687', 'neo4j', 'blerg', c.SessionStorageMode.SINGLE ) c._init_driver() main()