mirror of
https://github.com/serega404/VodokanalBot.git
synced 2026-10-30 11:29:55 +03:00
fix: ограничить время запросов и исключить параллельные запуски
Добавлены таймауты запросов к сайту и Telegram, общий предел выполнения 9 минут и файловая блокировка запусков. База сообщений сохраняется атомарно. Регрессионные тесты запускаются перед публикацией Docker-образа.
This commit is contained in:
1 parent
6f2b27f00e
commit
c5c4a63668
5 files changed
+201
-5
No files matched your search
@@ -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`:
|
||||
|
||||
Reference in new issue
Block a user