English Version | Русская Версия
[1.22.5] - 2026-06-08
🚀 Добавлено:
- Uptime: Добавлена возможность сброса счетчиков аптайма и даунтайма главного сервера и нод до системных значений через WebUI (в модальных окнах) и бота Telegram (инлайн-кнопка). Кнопка сброса теперь отображается только в том случае, если есть накопленный даунтайм (счетчики не равны системным значениям). Изменен дизайн отображения кнопки в WebUI для унификации интерфейса.
⚡ Производительность и оптимизация:
- Speedtest: Добавлен
asyncio.Semaphoreдля ограничения количества одновременных процессов ping (до 15), что предотвращает скачки нагрузки на CPU и ошибки "Too many open files" на слабых серверах. - Speedtest / Безопасность: Заменен
create_subprocess_shellнаcreate_subprocess_execдля командiperf3иpingдля повышения безопасности и эффективности выполнения. - Speedtest / I/O: Блокирующие операции файлового ввода/вывода (запись файлов кэша серверов) перенесены в
asyncio.to_thread, чтобы не блокировать цикл обработки событий (event loop).
🔧 Исправлено:
- Nodes / Telegram API: В
api_nodes.pyдобавлена обработка исключенияTelegramRetryAfterвprocess_node_result_backgroundс циклом повторных попыток. Это предотвращает потерю результатов (например, speedtest), когда несколько нод отвечают одновременно и упираются в лимиты API Telegram. - Nodes / Heartbeat: В агенте
node.pyустранено состояние гонки (race condition) в функцииsend_heartbeat. Вместо слепого вызова.clear()дляPENDING_RESULTSиSSH_EVENTS, теперь безопасно удаляются только те элементы, которые были успешно переданы на сервер.
Full Changelog: 1.22.4...1.22.5