fix: ограничить время запросов и исключить параллельные запуски

Добавлены таймауты запросов к сайту и Telegram, общий предел выполнения 9 минут и файловая блокировка запусков. База сообщений сохраняется атомарно. Регрессионные тесты запускаются перед публикацией Docker-образа.
This commit is contained in:
serega404 committed 2026-10-28 18:11:59 +03:00
1 parent 6f2b27f00e
commit c5c4a63668
5 files changed
+201 -5

No files matched your search

+10
View File
@@ -25,6 +25,16 @@ docker compose up -d --build
## Интеграции
Бот проверяет сообщения каждые 10 минут. Параллельные запуски защищены
файловой блокировкой: если предыдущий запуск ещё работает, очередная проверка
пропускается, не помечая сообщения обработанными. Следующий успешный запуск
снова сравнит сообщения за текущий день с базой.
Один запуск ограничен 9 минутами. Запрос к сайту водоканала имеет таймаут
10 секунд на подключение и 60 секунд ожидания данных, запросы к Telegram —
60 секунд. База `data/db.json` заменяется атомарно, чтобы прерывание записи
не повредило предыдущие данные.
Общая логика парсинга, работы с `data/db.json` и поиска новых сообщений вынесена в [`parser.py`](./parser.py).
Для новой интеграции достаточно создать свой адаптер отправки и передать его в `publish_new_posts`: