forked from hans/Nominatim
factor out connection reset code
This commit is contained in:
@@ -33,7 +33,7 @@ class DeadlockHandler:
|
|||||||
self.ignore_sql_errors = ignore_sql_errors
|
self.ignore_sql_errors = ignore_sql_errors
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
pass
|
return self
|
||||||
|
|
||||||
def __exit__(self, exc_type, exc_value, traceback):
|
def __exit__(self, exc_type, exc_value, traceback):
|
||||||
if __has_psycopg2_errors__:
|
if __has_psycopg2_errors__:
|
||||||
@@ -190,10 +190,7 @@ class WorkerPool:
|
|||||||
yield thread
|
yield thread
|
||||||
|
|
||||||
if command_stat > self.REOPEN_CONNECTIONS_AFTER:
|
if command_stat > self.REOPEN_CONNECTIONS_AFTER:
|
||||||
for thread in self.threads:
|
self._reconnect_threads()
|
||||||
while not thread.is_done():
|
|
||||||
thread.wait()
|
|
||||||
thread.connect()
|
|
||||||
ready = self.threads
|
ready = self.threads
|
||||||
command_stat = 0
|
command_stat = 0
|
||||||
else:
|
else:
|
||||||
@@ -202,6 +199,13 @@ class WorkerPool:
|
|||||||
self.wait_time += time.time() - tstart
|
self.wait_time += time.time() - tstart
|
||||||
|
|
||||||
|
|
||||||
|
def _reconnect_threads(self):
|
||||||
|
for thread in self.threads:
|
||||||
|
while not thread.is_done():
|
||||||
|
thread.wait()
|
||||||
|
thread.connect()
|
||||||
|
|
||||||
|
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user