Check and Update Connections #1

Closed
opened 2026-03-10 11:35:36 +03:00 by mish · 1 comment
Owner

I can see "Последнее обновление: 09.03.2026 15:12" on https://evosync.ru/catalog. It looks like connection is not checked in background.
Need to configure background process to check and update status of connections for every user.

I can see "Последнее обновление: 09.03.2026 15:12" on https://evosync.ru/catalog. It looks like connection is not checked in background. Need to configure background process to check and update status of connections for every user.
Author
Owner

Реализовано в web/health_checker.py и web/config.py.

Что сделано:

Существующий фоновый цикл health_check_loop (запускается при старте приложения через lifespan) теперь также обновляет кэш каталога для всех пользователей с активным подключением Эвотор.

Логика обновления каталога (добавлена в run_health_checks):

  • После проверки статуса соединений перебирает все онлайн-подключения Эвотор
  • Проверяет возраст кэша (fetched_at в cached_stores)
  • Если кэш отсутствует или старше CATALOG_REFRESH_INTERVAL_SECONDS — вызывает refresh_catalog_cache()
  • Ошибки обновления логируются, но не прерывают цикл

Новый параметр конфигурации (web/config.py):

CATALOG_REFRESH_INTERVAL_SECONDS=3600  # по умолчанию 1 час, задаётся через .env

Теперь «Последнее обновление» на странице /catalog будет автоматически актуализироваться в фоне, без участия пользователя.

Реализовано в `web/health_checker.py` и `web/config.py`. **Что сделано:** Существующий фоновый цикл `health_check_loop` (запускается при старте приложения через `lifespan`) теперь также обновляет кэш каталога для всех пользователей с активным подключением Эвотор. **Логика обновления каталога** (добавлена в `run_health_checks`): - После проверки статуса соединений перебирает все онлайн-подключения Эвотор - Проверяет возраст кэша (`fetched_at` в `cached_stores`) - Если кэш отсутствует или старше `CATALOG_REFRESH_INTERVAL_SECONDS` — вызывает `refresh_catalog_cache()` - Ошибки обновления логируются, но не прерывают цикл **Новый параметр конфигурации** (`web/config.py`): ``` CATALOG_REFRESH_INTERVAL_SECONDS=3600 # по умолчанию 1 час, задаётся через .env ``` Теперь «Последнее обновление» на странице `/catalog` будет автоматически актуализироваться в фоне, без участия пользователя.
mish closed this issue 2026-03-10 12:54:42 +03:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mish/evo-sync#1