Dink0 Claude Opus 4.8 commited on
Commit
14ba511
·
1 Parent(s): 397f7dc

Fix Telegram timeouts: restore generous connect/read timeouts and lower concurrency

Browse files

HF datacenter IPs get throttled by Telegram; the new 3.05s connect timeout
plus 16-way concurrency caused mass read timeouts. Restore 6-way concurrency,
bump connect/read timeouts, and floor them against tiny env overrides.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Files changed (1) hide show
  1. app.py +11 -5
app.py CHANGED
@@ -31,13 +31,19 @@ TELEGRAM_STRING_SESSION = os.getenv("TELEGRAM_STRING_SESSION", "")
31
  # --- Таймауты и параллелизм (всё настраивается через переменные окружения) ---
32
  # Таймаут одного HTTP-запроса задаём кортежем (connect, read), чтобы зависший
33
  # коннект не съедал всё время.
34
- _TG_READ_TIMEOUT = float(os.getenv("TELEGRAM_OP_TIMEOUT", "8"))
35
- TG_HTTP_TIMEOUT = (3.05, _TG_READ_TIMEOUT)
36
- _MAX_READ_TIMEOUT = float(os.getenv("MAX_OP_TIMEOUT", "6"))
37
- MAX_HTTP_TIMEOUT = (3.05, _MAX_READ_TIMEOUT)
 
 
 
 
 
 
38
  REQUEST_TIMEOUT = float(os.getenv("REQUEST_TIMEOUT", "15")) # для VK API
39
 
40
- TELEGRAM_CONCURRENCY = int(os.getenv("TELEGRAM_CONCURRENCY", "16"))
41
  MAX_CONCURRENCY = int(os.getenv("MAX_CONCURRENCY", "8"))
42
 
43
  VK_MAX_RETRIES = int(os.getenv("VK_MAX_RETRIES", "5"))
 
31
  # --- Таймауты и параллелизм (всё настраивается через переменные окружения) ---
32
  # Таймаут одного HTTP-запроса задаём кортежем (connect, read), чтобы зависший
33
  # коннект не съедал всё время.
34
+ # С датацентр-IP (Hugging Face) Telegram троттлит соединения, поэтому держим
35
+ # щедрый connect-таймаут и не задираем параллелизм — иначе массовые таймауты.
36
+ # max(..., floor) — защита от слишком маленьких значений в env (например,
37
+ # случайно выставленного TELEGRAM_OP_TIMEOUT=3.05), которые рвут TG-запросы.
38
+ _TG_CONNECT_TIMEOUT = max(float(os.getenv("TELEGRAM_CONNECT_TIMEOUT", "10")), 8.0)
39
+ _TG_READ_TIMEOUT = max(float(os.getenv("TELEGRAM_OP_TIMEOUT", "15")), 10.0)
40
+ TG_HTTP_TIMEOUT = (_TG_CONNECT_TIMEOUT, _TG_READ_TIMEOUT)
41
+ _MAX_CONNECT_TIMEOUT = max(float(os.getenv("MAX_CONNECT_TIMEOUT", "10")), 8.0)
42
+ _MAX_READ_TIMEOUT = max(float(os.getenv("MAX_OP_TIMEOUT", "12")), 8.0)
43
+ MAX_HTTP_TIMEOUT = (_MAX_CONNECT_TIMEOUT, _MAX_READ_TIMEOUT)
44
  REQUEST_TIMEOUT = float(os.getenv("REQUEST_TIMEOUT", "15")) # для VK API
45
 
46
+ TELEGRAM_CONCURRENCY = int(os.getenv("TELEGRAM_CONCURRENCY", "6"))
47
  MAX_CONCURRENCY = int(os.getenv("MAX_CONCURRENCY", "8"))
48
 
49
  VK_MAX_RETRIES = int(os.getenv("VK_MAX_RETRIES", "5"))