fix: pipeline stop now halts all workers and flushes queues
Workers (ingestion, parser, extractor, aggregation, recommendation, broker, lake-publisher) now check the pipeline:enabled Redis flag on each loop iteration and sleep when disabled. The toggle endpoint flushes all pipeline queues on disable so queued jobs don't resume when workers eventually check. Broker/trading queues are excluded from flush to avoid dropping in-flight orders.
This commit is contained in:
@@ -41,6 +41,7 @@ from services.shared.redis_keys import (
|
||||
QUEUE_INGESTION,
|
||||
QUEUE_PARSING,
|
||||
dedupe_key,
|
||||
is_pipeline_enabled,
|
||||
queue_key,
|
||||
)
|
||||
from services.shared.storage import (
|
||||
@@ -265,6 +266,9 @@ async def main():
|
||||
|
||||
try:
|
||||
while True:
|
||||
if not await is_pipeline_enabled(rds):
|
||||
await asyncio.sleep(2)
|
||||
continue
|
||||
raw = await rds.lpop(queue)
|
||||
if raw:
|
||||
job = json.loads(raw)
|
||||
|
||||
Reference in New Issue
Block a user