{"id":"c1094","filename":"c1094_chain_retry_worker.dok.json","weise3_id":"","tip":"feature","naziv":"Chain Retry Worker — genesis:chain:retry stream potrošač","kreator":"genesis","datum":"2026-05-22","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"feature","naziv":"Chain Retry Worker — genesis:chain:retry stream potrošač","sustav":"fenix-v4","fajl":"tasks/chain_retry_tasks.py","zakon":["ZAKON_2","ZAKON_3","ZAKON_28","ZAKON_32"],"sto_treba":["Celery Beat task koji svakih 60s čita genesis:chain:retry Redis stream","XREADGROUP consumer group za pouzdanu obradu (at-least-once)","xautoclaim za re-claim poruka koje su zaostale >30s","Dead letter nakon MAX_RETRY_COUNT=5 — XACK + kritični log","asyncio.run(_chain_push) unutar sync Celery taska","Registracija u celery_app.py — queue=scheduled, Beat svakih 60s","ZAKON 28: bez expires_at modela, nema cleanup taska — stream je ephemeral"],"stanje":"IMPLEMENTIRANO","datum":"2026-05-22"}}