From 1dd3f1569f14e57fc38d338aecc9a5735337a8dc Mon Sep 17 00:00:00 2001 From: jze9 Date: Wed, 26 Aug 2026 20:08:16 +0500 Subject: [PATCH] =?UTF-8?q?fix(indexer):=20=D0=BD=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B5=D0=B2=D1=8B=D1=88=D0=B0=D1=82=D1=8C=20consumer=5Ftimeout?= =?UTF-8?q?=20RabbitMQ=20=D0=B2=20retry-=D0=B1=D1=8D=D0=BA=D0=BE=D1=84?= =?UTF-8?q?=D1=84=D0=B5=20OpenAlex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 5 попыток (1860с суммарно) были чуть больше дефолтного consumer_timeout RabbitMQ (1800с) — брокер рвал канал раньше, чем таск успевал сдаться и подтвердиться, воркер падал, docker его перезапускал, сообщение редоставлялось и весь цикл забега начинался заново с попытки 1 — бесконечный краш-луп, блокирующий весь пул воркера (concurrency=4). --- scripts/parsers/openalex.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/parsers/openalex.py b/scripts/parsers/openalex.py index bd7c694..fb3169f 100644 --- a/scripts/parsers/openalex.py +++ b/scripts/parsers/openalex.py @@ -94,7 +94,13 @@ class OpenAlexParser(BaseParser): per_page = min(200, limit) total_fetched = 0 rate_limit_retries = 0 - MAX_RATE_LIMIT_RETRIES = 5 + # 5 попыток (60+120+240+480+960=1860с) превышали дефолтный + # consumer_timeout RabbitMQ (1800с) — брокер рвал канал до того, + # как таск успевал сдаться и заacke-иться, воркер падал и Docker + # перезапускал его, задача редоставлялась и весь цикл начинался + # заново с попытки 1 — бесконечный краш-луп. 4 попытки = 900с, + # запас с большим запасом. + MAX_RATE_LIMIT_RETRIES = 4 while total_fetched < limit: params: dict[str, Any] = {