Skip to content

Commit 9a712d9

Browse files
author
Oleg Gurev
committed
Added data_inserter to start/stop background wal record insertions for node
1 parent bb3d09b commit 9a712d9

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

testgres/node.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,10 @@ def __init__(self, name=None, base_dir=None, port=None, conn_params: ConnectionP
179179
# Node state
180180
self.is_started = False
181181

182+
# Data inserter thread
183+
self._insert_thread = None
184+
self._stop_insert_data = threading.Event()
185+
182186
def __enter__(self):
183187
return self
184188

@@ -883,6 +887,8 @@ def stop(self, params=[], wait=True):
883887
"stop"
884888
] + params # yapf: disable
885889

890+
self.stop_data_inserter()
891+
886892
execute_utility(_params, self.utils_log_file)
887893

888894
self._maybe_stop_logger()
@@ -1837,6 +1843,28 @@ def _escape_config_value(value):
18371843
result += "'"
18381844
return result
18391845

1846+
def start_data_inserter(self, sleep_interval=1):
1847+
self._stop_insert_data.clear()
1848+
1849+
def _insert_loop():
1850+
while not self._stop_insert_data.is_set():
1851+
try:
1852+
1853+
self.safe_psql(
1854+
"postgres",
1855+
"select txid_current()")
1856+
except QueryException:
1857+
break
1858+
time.sleep(sleep_interval)
1859+
1860+
self._insert_thread = threading.Thread(target=_insert_loop, daemon=True)
1861+
self._insert_thread.start()
1862+
1863+
def stop_data_inserter(self):
1864+
if self._insert_thread:
1865+
self._stop_insert_data.set()
1866+
self._insert_thread.join()
1867+
self._insert_thread = None
18401868

18411869
class NodeApp:
18421870

0 commit comments

Comments
 (0)