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:
@@ -27,6 +27,7 @@ from services.shared.redis_keys import (
|
||||
QUEUE_AGGREGATION,
|
||||
QUEUE_EXTRACTION,
|
||||
QUEUE_MACRO_CLASSIFICATION,
|
||||
is_pipeline_enabled,
|
||||
queue_key,
|
||||
)
|
||||
|
||||
@@ -421,6 +422,10 @@ async def main() -> None:
|
||||
|
||||
try:
|
||||
while True:
|
||||
if not await is_pipeline_enabled(redis_client):
|
||||
await asyncio.sleep(1)
|
||||
continue
|
||||
|
||||
# Alternate: every 3rd job from macro queue, rest from extraction
|
||||
# This prevents macro events from starving regular extractions
|
||||
raw = None
|
||||
|
||||
Reference in New Issue
Block a user