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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy