Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

Commit d316b91

Browse files
pslavovivanovyordan
authored andcommitted
Break script after 1800 seconds run time
1 parent 8917c35 commit d316b91

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

tap_postgres/sync_strategies/logical_replication.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ def on_sigterm_received():
3232
signal.signal(signal.SIGTERM, on_sigterm_received)
3333

3434

35+
START_TIME = datetime.datetime.now()
36+
3537
def get_pg_version(cur):
3638
cur.execute("SELECT version()")
3739
res = cur.fetchone()[0]
@@ -430,6 +432,7 @@ def sync_tables(conn_info, logical_streams, state, end_lsn):
430432
keep_alive_time = 0.1
431433
begin_ts = datetime.datetime.now()
432434
add_tables = []
435+
max_run_time = 1800 #max script run time for the extractor script
433436

434437
for s in logical_streams:
435438
sync_common.send_schema_message(s, ['lsn'])
@@ -485,6 +488,11 @@ def sync_tables(conn_info, logical_streams, state, end_lsn):
485488
if not last_lsn_processed:
486489
state["lsn_to_flush"] = end_lsn
487490
break
491+
492+
script_run_time = (datetime.datetime.now() - START_TIME).total_seconds()
493+
if script_run_time > max_run_time:
494+
LOGGER.info("breaking after %s seconds of script running (more then the maximum %s seconds)!", script_run_time, max_run_time)
495+
break
488496

489497
read_message_start = datetime.datetime.now()
490498
msg = cur.read_message()

0 commit comments

Comments
 (0)