From a04dc9445b454b393668f6584a527507aabca994 Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Thu, 4 Jun 2026 11:29:31 +0300 Subject: [PATCH] Pre-ping the Postgres queue engine --- haiku_rag_slim/haiku/rag/ingester/queue/migrations.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/haiku_rag_slim/haiku/rag/ingester/queue/migrations.py b/haiku_rag_slim/haiku/rag/ingester/queue/migrations.py index 77d9abf9..6cb01525 100644 --- a/haiku_rag_slim/haiku/rag/ingester/queue/migrations.py +++ b/haiku_rag_slim/haiku/rag/ingester/queue/migrations.py @@ -17,7 +17,9 @@ def make_engine(config: QueueConfig) -> AsyncEngine: """Build the queue's AsyncEngine from config. Uses `dburi` when set, otherwise a `sqlite+aiosqlite` URL pointing at the resolved `path` (creating the parent directory). SQLite is capped to a single pooled - connection so the two-statement claim stays atomic without row locks.""" + connection so the claim stays atomic without row locks; Postgres uses + pool_pre_ping so a long-running ingester survives a DB restart or idle + connection drop.""" if config.dburi: url = make_url(config.dburi) else: @@ -28,7 +30,7 @@ def make_engine(config: QueueConfig) -> AsyncEngine: if url.get_backend_name() == "sqlite": engine = create_async_engine(url, pool_size=1, max_overflow=0) else: - engine = create_async_engine(url) + engine = create_async_engine(url, pool_pre_ping=True) install_sqlite_pragmas(engine) return engine