From e702d21c33c82fd26db2fdefb63136308556b950 Mon Sep 17 00:00:00 2001 From: Vladless Date: Sat, 21 Feb 2026 15:17:25 +0300 Subject: [PATCH] multithreading/log refactoring --- api/v1/routes/management.py | 11 +- api/v1/routes/modules.py | 20 +-- api/v2/routes/management.py | 11 +- api/v2/routes/modules.py | 22 +-- core/app.cpython-312-x86_64-linux-gnu.so | Bin 544760 -> 544760 bytes core/executor.py | 24 ++- database/identities.py | 12 +- handlers/admin/management/database.py | 147 +++++++++--------- handlers/admin/management/file_upload.py | 3 +- handlers/admin/module/module_handler.py | 9 +- handlers/admin/panel/panel_handler.py | 5 +- handlers/admin/restart/restart_handler.py | 11 +- handlers/keys/key_connect.py | 28 ++-- .../notifications/general_notifications.py | 2 +- handlers/refferal.py | 31 ++-- handlers/tariffs/buy/key_tariffs.py | 2 +- hooks/hooks.py | 21 +-- servers.py | 8 +- utils/backup.py | 84 +++++----- utils/modules_manager.py | 7 +- utils/versioning.py | 6 +- 21 files changed, 238 insertions(+), 226 deletions(-) diff --git a/api/v1/routes/management.py b/api/v1/routes/management.py index 4bf26774..83a15929 100644 --- a/api/v1/routes/management.py +++ b/api/v1/routes/management.py @@ -18,7 +18,7 @@ from api.depends import get_session, verify_admin_token, verify_admin_token_shor from database import async_session_maker from config import API_TOKEN, BOT_SERVICE from core.bootstrap import MANAGEMENT_CONFIG -from core.executor import get_thread_pool +from core.executor import run_io from core.settings.management_config import update_management_config from database.models import Key, User from database.models import Server @@ -65,14 +65,7 @@ async def _restart_bot() -> None: is_systemd = parent and "systemd" in parent.name().lower() if is_systemd: - loop = asyncio.get_running_loop() - await loop.run_in_executor( - get_thread_pool(), - lambda: subprocess.run( - ["sudo", "systemctl", "restart", BOT_SERVICE], - check=True, - ), - ) + await run_io(lambda: subprocess.run(["sudo", "systemctl", "restart", BOT_SERVICE], check=True)) else: python_exe = sys.executable script_path = os.path.abspath(sys.argv[0]) diff --git a/api/v1/routes/modules.py b/api/v1/routes/modules.py index 4836dcb8..11e0fd44 100644 --- a/api/v1/routes/modules.py +++ b/api/v1/routes/modules.py @@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException from pydantic import BaseModel from api.depends import verify_admin_token +from core.executor import run_io from utils.modules_loader import _is_safe_module_name from utils.modules_manager import manager @@ -80,24 +81,23 @@ def _read_local_module_version(name: str) -> str | None: return None -@router.get("/") -async def list_modules(admin=Depends(verify_admin_token)): - refresh = getattr(manager, "refresh_state", None) +def sync_list_modules() -> list: + """Вся синхронная работа со списком модулей (файлы, состояние). Вызывать через run_io().""" + refresh = getattr(manager, "refresh_state", None) or getattr(manager, "_load_state", None) if callable(refresh): refresh() - else: - legacy_refresh = getattr(manager, "_load_state", None) - if callable(legacy_refresh): - legacy_refresh() module_names = _available_module_names() _prune_missing_state(set(module_names)) modules = [_module_state(name) for name in module_names] - for item in modules: name = str(item.get("name") or "").strip() - local_version = _read_local_module_version(name) - item["local_version"] = local_version + item["local_version"] = _read_local_module_version(name) + return modules + +@router.get("/") +async def list_modules(admin=Depends(verify_admin_token)): + modules = await run_io(sync_list_modules) return {"items": modules} diff --git a/api/v2/routes/management.py b/api/v2/routes/management.py index 71c36517..a2459b34 100644 --- a/api/v2/routes/management.py +++ b/api/v2/routes/management.py @@ -18,7 +18,7 @@ from api.depends import get_session, verify_identity_admin, verify_identity_admi from database import async_session_maker from config import API_TOKEN, BOT_SERVICE from core.bootstrap import MANAGEMENT_CONFIG -from core.executor import get_thread_pool +from core.executor import run_io from core.settings.management_config import update_management_config from database.models import Key, Server, User from handlers.admin.sender.sender_service import BroadcastService @@ -64,14 +64,7 @@ async def _restart_bot() -> None: parent = psutil.Process(os.getpid()).parent() is_systemd = parent and "systemd" in parent.name().lower() if is_systemd: - loop = asyncio.get_running_loop() - await loop.run_in_executor( - get_thread_pool(), - lambda: subprocess.run( - ["sudo", "systemctl", "restart", BOT_SERVICE], - check=True, - ), - ) + await run_io(lambda: subprocess.run(["sudo", "systemctl", "restart", BOT_SERVICE], check=True)) else: python_exe = sys.executable script_path = os.path.abspath(sys.argv[0]) diff --git a/api/v2/routes/modules.py b/api/v2/routes/modules.py index 43ed47df..5f24035f 100644 --- a/api/v2/routes/modules.py +++ b/api/v2/routes/modules.py @@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException from pydantic import BaseModel from api.depends import verify_identity_admin +from core.executor import run_io from utils.modules_loader import _is_safe_module_name from utils.modules_manager import manager @@ -77,23 +78,24 @@ def _read_local_module_version(name: str) -> str | None: return None -@router.get("/") -async def list_modules(identity=Depends(verify_identity_admin)): - """Список модулей с состоянием и локальной версией.""" - refresh = getattr(manager, "refresh_state", None) +def sync_list_modules() -> list: + """Вся синхронная работа со списком модулей (файлы, состояние). Вызывать через run_io().""" + refresh = getattr(manager, "refresh_state", None) or getattr(manager, "_load_state", None) if callable(refresh): refresh() - else: - legacy_refresh = getattr(manager, "_load_state", None) - if callable(legacy_refresh): - legacy_refresh() module_names = _available_module_names() _prune_missing_state(set(module_names)) modules = [_module_state(name) for name in module_names] for item in modules: name = str(item.get("name") or "").strip() - local_version = _read_local_module_version(name) - item["local_version"] = local_version + item["local_version"] = _read_local_module_version(name) + return modules + + +@router.get("/") +async def list_modules(identity=Depends(verify_identity_admin)): + """Список модулей с состоянием и локальной версией.""" + modules = await run_io(sync_list_modules) return {"items": modules} diff --git a/core/app.cpython-312-x86_64-linux-gnu.so b/core/app.cpython-312-x86_64-linux-gnu.so index f9e8a091c2e51999962644c355f6d17a5de2facb..b1061e6c81691ecbd9b646aa512899103a01d61d 100644 GIT binary patch delta 208226 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 Ns3rTJp5mBm|3A(90N(%r diff --git a/core/executor.py b/core/executor.py index 34230ef8..9c7e881c 100644 --- a/core/executor.py +++ b/core/executor.py @@ -1,10 +1,14 @@ +import asyncio import atexit import signal import multiprocessing from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor +from typing import Callable, TypeVar from logger import logger +T = TypeVar("T") + _thread_pool: ThreadPoolExecutor | None = None _process_pool: ProcessPoolExecutor | None = None @@ -30,7 +34,7 @@ def get_thread_pool() -> ThreadPoolExecutor: from config import EXECUTOR_POOL_SIZE size = max(1, int(EXECUTOR_POOL_SIZE)) _thread_pool = ThreadPoolExecutor(max_workers=size, thread_name_prefix="bot-thread") - logger.debug("Thread pool started (workers=%s)", size) + logger.debug("[Executor] Пул потоков: {} воркеров", size) return _thread_pool @@ -40,7 +44,7 @@ def shutdown_thread_pool() -> None: if _thread_pool is not None: _thread_pool.shutdown(wait=True) _thread_pool = None - logger.debug("Thread pool shut down") + logger.debug("[Executor] Пул потоков остановлен") def get_process_pool() -> ProcessPoolExecutor: @@ -56,7 +60,7 @@ def get_process_pool() -> ProcessPoolExecutor: ctx.Process = _IgnoreSIGINTProcess _process_pool = ProcessPoolExecutor(max_workers=size, mp_context=ctx) atexit.register(_atexit_shutdown_pools) - logger.debug("Process pool started (workers=%s)", size) + logger.debug("[Executor] Пул процессов: {} воркеров", size) return _process_pool @@ -70,4 +74,16 @@ def shutdown_process_pool() -> None: pass _process_pool.shutdown(wait=True) _process_pool = None - logger.debug("Process pool shut down") + logger.debug("[Executor] Пул процессов остановлен") + + +async def run_io(fn: Callable[..., T], *args: object) -> T: + """Выполняет fn(*args) в пуле потоков (I/O). Один вызов для всех блокирующих операций.""" + loop = asyncio.get_running_loop() + return await loop.run_in_executor(get_thread_pool(), lambda: fn(*args)) + + +async def run_cpu(fn: Callable[..., T], *args: object) -> T: + """Выполняет fn(*args) в пуле процессов (CPU). fn — функция уровня модуля (для pickle).""" + loop = asyncio.get_running_loop() + return await loop.run_in_executor(get_process_pool(), fn, *args) diff --git a/database/identities.py b/database/identities.py index 91e6873d..dbec7a97 100644 --- a/database/identities.py +++ b/database/identities.py @@ -7,6 +7,7 @@ from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from config import API_TOKEN_TTL_DAYS +from core.executor import run_cpu, run_io from database.models import Admin, Identity, User @@ -90,7 +91,7 @@ async def get_identity_by_token_hash(session: AsyncSession, token_hash: str) -> async def issue_token_for_identity(session: AsyncSession, identity: Identity) -> str: """Генерирует токен, сохраняет хеш и token_issued_at в identity, возвращает токен (показать один раз).""" token = generate_token() - identity.api_token_hash = hash_token(token) + identity.api_token_hash = await run_io(hash_token, token) identity.token_issued_at = datetime.utcnow() await session.commit() await session.refresh(identity) @@ -114,7 +115,7 @@ async def create_identity_with_token( """Создаёт идентичность и выдаёт API-токен. При регистрации по почте передать email и password.""" identity = await create_identity(session, email=email, tg_id=tg_id) if password: - identity.password_hash = hash_password(password) + identity.password_hash = await run_cpu(hash_password, password) await session.commit() await session.refresh(identity) token = await issue_token_for_identity(session, identity) @@ -126,7 +127,8 @@ async def verify_identity_token(session: AsyncSession, identity_id: str, token: identity = await get_identity_by_id(session, identity_id) if not identity or not identity.api_token_hash: return None - if hash_token(token) != identity.api_token_hash: + token_hash = await run_io(hash_token, token) + if token_hash != identity.api_token_hash: return None if _is_token_expired(identity): return None @@ -136,7 +138,9 @@ async def verify_identity_token(session: AsyncSession, identity_id: str, token: async def login_by_email(session: AsyncSession, email: str, password: str) -> tuple[Identity, str] | None: """Вход по email и паролю: проверяет пароль, выдаёт новый токен; возвращает (identity, token) или None.""" identity = await get_identity_by_email(session, email) - if not identity or not check_password(password, identity.password_hash): + if not identity: + return None + if not await run_cpu(check_password, password, identity.password_hash): return None token = await issue_token_for_identity(session, identity) return identity, token diff --git a/handlers/admin/management/database.py b/handlers/admin/management/database.py index a918daf6..122d39cd 100644 --- a/handlers/admin/management/database.py +++ b/handlers/admin/management/database.py @@ -11,6 +11,7 @@ from aiogram.fsm.state import State, StatesGroup from aiogram.types import CallbackQuery, Message from config import DB_NAME, DB_PASSWORD, DB_USER, PG_HOST, PG_PORT +from core.executor import run_io from filters.admin import IsAdminFilter from logger import logger @@ -18,6 +19,62 @@ from . import router from .keyboard import AdminPanelCallback, build_back_to_db_menu, build_database_kb, build_export_db_sources_kb +def sync_restore_database( + tmp_path: str, + db_name: str, + db_user: str, + db_password: str, + pg_host: str, + pg_port: str, +) -> tuple[bool, str]: + """Восстановление БД из файла. Вызывать через run_io().""" + is_custom_dump = False + with open(tmp_path, "rb") as f: + if f.read(5) == b"PGDMP": + is_custom_dump = True + + try: + subprocess.run( + [ + "sudo", "-u", "postgres", "psql", "-d", "postgres", + "-c", + f"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '{db_name}' AND pid <> pg_backend_pid();", + ], + check=True, + ) + subprocess.run( + ["sudo", "-u", "postgres", "psql", "-d", "postgres", "-c", f"DROP DATABASE IF EXISTS {db_name};"], + check=True, + ) + subprocess.run( + ["sudo", "-u", "postgres", "psql", "-d", "postgres", "-c", f"CREATE DATABASE {db_name} OWNER {db_user};"], + check=True, + ) + except subprocess.CalledProcessError as e: + return False, (e.stderr or e.stdout or str(e)) + + os.environ["PGPASSWORD"] = db_password + try: + if is_custom_dump: + result = subprocess.run( + [ + "pg_restore", f"--dbname={db_name}", "-U", db_user, + "-h", pg_host, "-p", pg_port, "--no-owner", "--exit-on-error", tmp_path, + ], + capture_output=True, + text=True, + ) + else: + result = subprocess.run( + ["psql", "-U", db_user, "-h", pg_host, "-p", pg_port, "-d", db_name, "-f", tmp_path], + capture_output=True, + text=True, + ) + return result.returncode == 0, result.stderr or "" + finally: + del os.environ["PGPASSWORD"] + + class DatabaseState(StatesGroup): waiting_for_backup_file = State() @@ -53,93 +110,31 @@ async def restore_database(message: Message, state: FSMContext, bot: Bot): tmp_path = tmp_file.name await bot.download(document, destination=tmp_path) - logger.info(f"[Restore] Файл получен и сохранён: {tmp_path}") + logger.info("[Restore] Файл получен: {}", tmp_path) - is_custom_dump = False - with open(tmp_path, "rb") as f: - signature = f.read(5) - if signature == b"PGDMP": - is_custom_dump = True - - subprocess.run( - [ - "sudo", - "-u", - "postgres", - "psql", - "-d", - "postgres", - "-c", - f"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '{DB_NAME}' AND pid <> pg_backend_pid();", - ], - check=True, + success, err_msg = await run_io( + sync_restore_database, + tmp_path, + DB_NAME, + DB_USER, + DB_PASSWORD, + PG_HOST, + PG_PORT, ) - subprocess.run( - ["sudo", "-u", "postgres", "psql", "-d", "postgres", "-c", f"DROP DATABASE IF EXISTS {DB_NAME};"], - check=True, - ) - - subprocess.run( - ["sudo", "-u", "postgres", "psql", "-d", "postgres", "-c", f"CREATE DATABASE {DB_NAME} OWNER {DB_USER};"], - check=True, - ) - - logger.info("[Restore] База данных пересоздана") - - os.environ["PGPASSWORD"] = DB_PASSWORD - - if is_custom_dump: - result = subprocess.run( - [ - "pg_restore", - f"--dbname={DB_NAME}", - "-U", - DB_USER, - "-h", - PG_HOST, - "-p", - PG_PORT, - "--no-owner", - "--exit-on-error", - tmp_path, - ], - capture_output=True, - text=True, - ) - else: - result = subprocess.run( - [ - "psql", - "-U", - DB_USER, - "-h", - PG_HOST, - "-p", - PG_PORT, - "-d", - DB_NAME, - "-f", - tmp_path, - ], - capture_output=True, - text=True, - ) - - del os.environ["PGPASSWORD"] - - if result.returncode != 0: - logger.error(f"[Restore] Ошибка восстановления: {result.stderr}") + if not success: + logger.error("[Restore] Ошибка: {}", err_msg) await message.answer( - f"❌ Ошибка при восстановлении базы данных:\n

{result.stderr}
", + f"❌ Ошибка при восстановлении базы данных:\n
{err_msg}
", ) return + logger.info("[Restore] База восстановлена") await message.answer( "✅ База данных восстановлена.", reply_markup=build_back_to_db_menu(), ) - logger.info("[Restore] Успешно восстановлено. Завершаем процесс для перезапуска.") + logger.info("[Restore] Завершение для перезапуска") await state.clear() sys.exit(0) diff --git a/handlers/admin/management/file_upload.py b/handlers/admin/management/file_upload.py index a65d73bc..1d97d3c8 100644 --- a/handlers/admin/management/file_upload.py +++ b/handlers/admin/management/file_upload.py @@ -6,6 +6,7 @@ from aiogram.fsm.state import State, StatesGroup from aiogram.types import CallbackQuery, Message from aiogram.utils.keyboard import InlineKeyboardBuilder +from core.executor import run_io from filters.admin import IsAdminFilter from logger import logger @@ -79,7 +80,7 @@ async def handle_admin_file_upload(message: Message, state: FSMContext): else: base_dir = os.path.abspath(".") - os.makedirs(base_dir, exist_ok=True) + await run_io(lambda: os.makedirs(base_dir, exist_ok=True)) dest_path = os.path.join(base_dir, file_name) try: diff --git a/handlers/admin/module/module_handler.py b/handlers/admin/module/module_handler.py index 7abb009a..f0941b9f 100644 --- a/handlers/admin/module/module_handler.py +++ b/handlers/admin/module/module_handler.py @@ -6,6 +6,7 @@ from aiogram.fsm.context import FSMContext from aiogram.types import CallbackQuery from sqlalchemy.ext.asyncio import AsyncSession +from core.executor import run_io from filters.admin import IsAdminFilter from handlers.admin.panel.keyboard import AdminPanelCallback from utils.modules_manager import manager @@ -50,7 +51,7 @@ async def handle_modules(callback_query: CallbackQuery, state: FSMContext, sessi packed = AdminPanelCallback.unpack(callback_query.data) page = max(1, packed.page or 1) - all_items = list_installed_modules() + all_items = await run_io(list_installed_modules) items = [(n, v) for n, v in all_items if n != "web_admin_panel"] per_page = 12 @@ -100,7 +101,7 @@ async def handle_module_restart(callback_query: CallbackQuery, state: FSMContext except Exception as e: result = f"❌ Ошибка перезапуска: {e}" - items = dict(list_installed_modules()) + items = dict(await run_io(list_installed_modules)) ver = items.get(name) title = f"{name} v{ver}" if ver else name text = f"🧩 Модуль: {title}\n\n{result}" @@ -129,7 +130,7 @@ async def handle_module_stop(callback_query: CallbackQuery, state: FSMContext, s except Exception as e: result = f"❌ Ошибка остановки: {e}" - items = dict(list_installed_modules()) + items = dict(await run_io(list_installed_modules)) ver = items.get(name) title = f"{name} v{ver}" if ver else name text = f"🧩 Модуль: {title}\n\n{result}" @@ -158,7 +159,7 @@ async def handle_module_start(callback_query: CallbackQuery, state: FSMContext, except Exception as e: result = f"❌ Ошибка запуска: {e}" - items = dict(list_installed_modules()) + items = dict(await run_io(list_installed_modules)) ver = items.get(name) title = f"{name} v{ver}" if ver else name text = f"🧩 Модуль: {title}\n\n{result}" diff --git a/handlers/admin/panel/panel_handler.py b/handlers/admin/panel/panel_handler.py index 883fc457..d2c7149a 100644 --- a/handlers/admin/panel/panel_handler.py +++ b/handlers/admin/panel/panel_handler.py @@ -9,6 +9,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from database.models import Admin from filters.admin import IsAdminFilter from logger import logger +from core.executor import run_io from utils.versioning import get_version from .keyboard import AdminPanelCallback, build_panel_kb @@ -19,7 +20,7 @@ router = Router() @router.callback_query(AdminPanelCallback.filter(F.action == "admin"), IsAdminFilter()) async def handle_admin_callback_query(callback_query: CallbackQuery, state: FSMContext, session: AsyncSession): - text = f"🤖 Панель администратора\n\nВерсия бота:\n
{get_version()}
" + text = f"🤖 Панель администратора\n\nВерсия бота:\n
{await run_io(get_version)}
" await state.clear() @@ -60,7 +61,7 @@ async def handle_admin_callback_query_simple(callback_query: CallbackQuery, stat @router.message(Command("admin"), IsAdminFilter()) async def handle_admin_message(message: Message, state: FSMContext, session: AsyncSession): - text = f"🤖 Панель администратора\n\nВерсия бота:\n
{get_version()}
" + text = f"🤖 Панель администратора\n\nВерсия бота:\n
{await run_io(get_version)}
" await state.clear() diff --git a/handlers/admin/restart/restart_handler.py b/handlers/admin/restart/restart_handler.py index 88b79175..42b16442 100644 --- a/handlers/admin/restart/restart_handler.py +++ b/handlers/admin/restart/restart_handler.py @@ -6,7 +6,7 @@ import sys import psutil from aiogram import F, Router -from core.executor import get_thread_pool +from core.executor import run_io from aiogram.types import CallbackQuery from filters.admin import IsAdminFilter @@ -33,14 +33,7 @@ async def restart_bot(): is_systemd = parent and "systemd" in parent.name().lower() if is_systemd: - loop = asyncio.get_running_loop() - await loop.run_in_executor( - get_thread_pool(), - lambda: subprocess.run( - ["sudo", "systemctl", "restart", "bot.service"], - check=True, - ), - ) + await run_io(lambda: subprocess.run(["sudo", "systemctl", "restart", "bot.service"], check=True)) else: python_exe = sys.executable script_path = os.path.abspath(sys.argv[0]) diff --git a/handlers/keys/key_connect.py b/handlers/keys/key_connect.py index defa7339..3deeb3d9 100644 --- a/handlers/keys/key_connect.py +++ b/handlers/keys/key_connect.py @@ -48,6 +48,21 @@ from logger import logger router = Router() +def generate_key_qr_file(qr_data: str, email: str) -> str: + """Генерация QR в файл. Вызывать через run_cpu(). Возвращает путь к файлу.""" + qr = qrcode.QRCode(version=1, box_size=10, border=4) + qr.add_data(qr_data) + qr.make(fit=True) + img = qr.make_image(fill_color="black", back_color="white") + buffer = BytesIO() + img.save(buffer, format="PNG") + buffer.seek(0) + qr_path = f"/tmp/qrcode_{email}.png" + with open(qr_path, "wb") as f: + f.write(buffer.read()) + return qr_path + + @router.callback_query(F.data.startswith("connect_device|")) async def handle_connect_device(callback_query: CallbackQuery, session: AsyncSession): try: @@ -226,18 +241,9 @@ async def show_qr_code(callback_query: types.CallbackQuery, session: AsyncSessio await callback_query.message.answer("❌ У этой подписки отсутствует ссылка для подключения.") return - qr = qrcode.QRCode(version=1, box_size=10, border=4) - qr.add_data(qr_data) - qr.make(fit=True) + from core.executor import run_cpu - img = qr.make_image(fill_color="black", back_color="white") - buffer = BytesIO() - img.save(buffer, format="PNG") - buffer.seek(0) - - qr_path = f"/tmp/qrcode_{record.email}.png" - with open(qr_path, "wb") as f: - f.write(buffer.read()) + qr_path = await run_cpu(generate_key_qr_file, qr_data, record.email) builder = InlineKeyboardBuilder() builder.row(InlineKeyboardButton(text=BACK, callback_data=f"view_key|{record.email}")) diff --git a/handlers/notifications/general_notifications.py b/handlers/notifications/general_notifications.py index 8f2aafba..d2524288 100644 --- a/handlers/notifications/general_notifications.py +++ b/handlers/notifications/general_notifications.py @@ -527,7 +527,7 @@ async def notify_expiring_keys( results = await asyncio.gather(*tasks, return_exceptions=True) for r in results: if isinstance(r, Exception): - logger.error("Ошибка в задаче продления: %s", r) + logger.error("Ошибка в задаче продления: {}", r) continue renew_results.append(r) else: diff --git a/handlers/refferal.py b/handlers/refferal.py index 6b625578..cd01eb4f 100644 --- a/handlers/refferal.py +++ b/handlers/refferal.py @@ -49,6 +49,21 @@ from .utils import edit_or_send_message, format_days router = Router() +def generate_referral_qr_file(referral_link: str, chat_id: str) -> str: + """Генерация QR в файл. Вызывать через run_cpu(). Возвращает путь к файлу.""" + qr = qrcode.QRCode(version=1, box_size=10, border=4) + qr.add_data(referral_link) + qr.make(fit=True) + image = qr.make_image(fill_color="black", back_color="white") + buffer = BytesIO() + image.save(buffer, format="PNG") + buffer.seek(0) + qr_path = f"/tmp/qrcode_referral_{chat_id}.png" + with open(qr_path, "wb") as file: + file.write(buffer.read()) + return qr_path + + @router.callback_query(F.data == "invite") @router.message(F.text == "/invite") async def invite_handler(callback_query_or_message: Message | CallbackQuery, session: AsyncSession): @@ -159,21 +174,11 @@ async def inline_referral_handler(inline_query: InlineQuery, session: AsyncSessi @router.callback_query(F.data.startswith("show_referral_qr|")) async def show_referral_qr(callback_query: CallbackQuery): try: + from core.executor import run_cpu + chat_id = callback_query.data.split("|")[1] referral_link = get_referral_link(chat_id) - - qr = qrcode.QRCode(version=1, box_size=10, border=4) - qr.add_data(referral_link) - qr.make(fit=True) - - image = qr.make_image(fill_color="black", back_color="white") - buffer = BytesIO() - image.save(buffer, format="PNG") - buffer.seek(0) - - qr_path = f"/tmp/qrcode_referral_{chat_id}.png" - with open(qr_path, "wb") as file: - file.write(buffer.read()) + qr_path = await run_cpu(generate_referral_qr_file, referral_link, chat_id) builder = InlineKeyboardBuilder() builder.row(InlineKeyboardButton(text=BACK, callback_data="invite")) diff --git a/handlers/tariffs/buy/key_tariffs.py b/handlers/tariffs/buy/key_tariffs.py index dfd670aa..06391421 100644 --- a/handlers/tariffs/buy/key_tariffs.py +++ b/handlers/tariffs/buy/key_tariffs.py @@ -737,7 +737,7 @@ async def select_tariff_plan(callback_query: CallbackQuery, session: Any, state: tg_id = callback_query.from_user.id tariff_id = int(callback_query.data.split("|")[1]) - logger.info("[TARIFF_CFG] select_tariff_plan: tg_id=%s tariff_id=%s", tg_id, tariff_id) + logger.info("[TARIFF_CFG] select_tariff_plan: tg_id={} tariff_id={}", tg_id, tariff_id) tariff = await get_tariff_by_id(session, tariff_id) if not tariff: diff --git a/hooks/hooks.py b/hooks/hooks.py index 9aff042d..ee112df3 100644 --- a/hooks/hooks.py +++ b/hooks/hooks.py @@ -25,12 +25,12 @@ def register_hook(name: str, func: Callable[..., Any] | None = None): def deco(f: Callable[..., Any]): _hooks.setdefault(name, []).append((f, owner(f))) - logger.info(f"[Hook] Зарегистрирован хук '{name}': {f.__name__}") + logger.info("[Hook] {} -> {}", name, f.__name__) return f return deco _hooks.setdefault(name, []).append((func, owner(func))) - logger.info(f"[Hook] Зарегистрирован хук '{name}': {func.__name__}") + logger.info("[Hook] {} -> {}", name, func.__name__) def unregister_module_hooks(module_name: str): @@ -58,23 +58,26 @@ async def run_hooks(name: str, require_enabled: bool = True, **kwargs) -> list[A if inspect.iscoroutinefunction(func): coro = func(**kwargs) else: - - async def _run_sync(): - return func(**kwargs) - - coro = _run_sync() + from core.executor import run_io + coro = run_io(lambda: func(**kwargs)) result = await asyncio.wait_for(coro, timeout=DEFAULT_HOOK_TIMEOUT) if result: results.append(result) except TimeoutError: logger.error( - f"[HOOK:{name}] Таймаут в {getattr(func, '__name__', func)} при timeout={DEFAULT_HOOK_TIMEOUT}", + "[Hook:{}] Таймаут {} с в {}", + name, + DEFAULT_HOOK_TIMEOUT, + getattr(func, "__name__", func), exc_info=True, ) except Exception as e: logger.error( - f"[HOOK:{name}] Ошибка в {getattr(func, '__name__', func)}: {e}", + "[Hook:{}] Ошибка в {}: {}", + name, + getattr(func, "__name__", func), + e, exc_info=True, ) return results diff --git a/servers.py b/servers.py index 5b312ba7..bbc57d23 100644 --- a/servers.py +++ b/servers.py @@ -10,7 +10,7 @@ from ping3 import ping from bot import bot from config import ADMIN_ID, PING_TIME -from core.executor import get_thread_pool +from core.executor import run_io from database import async_session_maker, get_servers from handlers.admin.servers.keyboard import AdminServerCallback from logger import logger @@ -30,11 +30,7 @@ def _sync_ping(server_ip: str, timeout: float = 3): async def ping_server(server_ip: str) -> bool: async with PING_SEMAPHORE: try: - loop = asyncio.get_running_loop() - response = await loop.run_in_executor( - get_thread_pool(), - lambda: _sync_ping(server_ip, 3), - ) + response = await run_io(_sync_ping, server_ip, 3) if response is not None and response is not False: return True return await check_tcp_connection(server_ip, 443) diff --git a/utils/backup.py b/utils/backup.py index 005fb8a3..585f576e 100644 --- a/utils/backup.py +++ b/utils/backup.py @@ -40,34 +40,35 @@ async def backup_database() -> Exception | None: Returns: Optional[Exception]: Исключение в случае ошибки или None при успешном выполнении """ - import asyncio - from core.executor import get_process_pool + from core.executor import run_io - loop = asyncio.get_event_loop() - pool = get_process_pool() + # Создаём бэкап в пуле потоков (run_io), а не процессов (run_cpu), чтобы файл + # создавался в том же процессе, что и отправка — иначе путь может быть недоступен + # (воркер уведомлений и воркер пула процессов могут иметь разный cwd/окружение). if BACKUP_CREATE_ARCHIVE: if not any([BACKUP_INCLUDE_DB, BACKUP_INCLUDE_CONFIG, BACKUP_INCLUDE_TEXTS, BACKUP_INCLUDE_IMG]): - backup_file_path, exception = await loop.run_in_executor(pool, _create_database_backup) + backup_file_path, exception = await run_io(_create_database_backup) else: - backup_file_path, exception = await loop.run_in_executor(pool, _create_backup_archive) + backup_file_path, exception = await run_io(_create_backup_archive) else: - backup_file_path, exception = await loop.run_in_executor(pool, _create_database_backup) + backup_file_path, exception = await run_io(_create_database_backup) if exception: - logger.error(f"Ошибка при создании бэкапа: {exception}") + logger.error("[Backup] Ошибка при создании: {}", exception) return exception + logger.info("[Backup] Файл создан: {}", backup_file_path) try: await _send_backup_to_admins(backup_file_path) - exception = _cleanup_old_backups() + exception = await run_io(_cleanup_old_backups) if exception: - logger.error(f"Ошибка при удалении старых бэкапов: {exception}") + logger.error("[Backup] Ошибка при очистке старых: {}", exception) return exception return None except Exception as e: - logger.error(f"Ошибка при отправке бэкапа: {e}") + logger.error("[Backup] Ошибка при отправке: {}", e) return e @@ -108,13 +109,13 @@ def _create_database_backup() -> tuple[str | None, Exception | None]: capture_output=True, text=True, ) - logger.info(f"Бэкап базы данных создан: {filename}") + logger.info("[Backup] БД создана: {}", filename) return str(filename), None except subprocess.CalledProcessError as e: - logger.error(f"Ошибка при выполнении pg_dump: {e.stderr}") + logger.error("[Backup] pg_dump: {}", e.stderr) return None, e except Exception as e: - logger.error(f"Непредвиденная ошибка при создании бэкапа: {e}") + logger.error("[Backup] Непредвиденная ошибка: {}", e) return None, e finally: if "PGPASSWORD" in os.environ: @@ -143,26 +144,26 @@ def _create_backup_archive() -> tuple[str | None, Exception | None]: if BACKUP_INCLUDE_DB: db_backup_path, db_exception = _create_database_backup() if db_exception: - logger.warning(f"Не удалось создать бекап БД для архива: {db_exception}") + logger.warning("[Backup] БД для архива не создана: {}", db_exception) elif db_backup_path and os.path.exists(db_backup_path): tar.add(db_backup_path, arcname=f"{archive_folder}/database.sql") - logger.info("База данных добавлена в архив") + logger.info("[Backup] БД добавлена в архив") if BACKUP_INCLUDE_CONFIG: config_path = project_root / "config.py" if config_path.exists(): tar.add(config_path, arcname=f"{archive_folder}/config.py") - logger.info("config.py добавлен в архив") + logger.info("[Backup] config.py в архив") else: - logger.warning("config.py не найден, пропущен") + logger.warning("[Backup] config.py не найден") if BACKUP_INCLUDE_TEXTS: texts_path = project_root / "handlers" / "texts.py" if texts_path.exists(): tar.add(texts_path, arcname=f"{archive_folder}/texts.py") - logger.info("texts.py добавлен в архив") + logger.info("[Backup] texts.py в архив") else: - logger.warning("handlers/texts.py не найден, пропущен") + logger.warning("[Backup] handlers/texts.py не найден") if BACKUP_INCLUDE_IMG: img_dir = project_root / "img" @@ -170,23 +171,23 @@ def _create_backup_archive() -> tuple[str | None, Exception | None]: img_files = [f for f in img_dir.iterdir() if f.is_file()] for img_file in img_files: tar.add(img_file, arcname=f"{archive_folder}/img/{img_file.name}") - logger.info(f"Папка img/ добавлена в архив ({len(img_files)} файлов)") + logger.info("[Backup] img/ в архив ({} файлов)", len(img_files)) else: - logger.warning("Папка img/ не найдена, пропущена") + logger.warning("[Backup] img/ не найдена") - logger.info(f"Архив бекапа создан: {archive_path}") + logger.info("[Backup] Архив создан: {}", archive_path) if db_backup_path and os.path.exists(db_backup_path) and db_backup_path != str(archive_path): try: os.unlink(db_backup_path) - logger.info(f"Временный файл БД удален: {db_backup_path}") + logger.info("[Backup] Временный файл БД удалён: {}", db_backup_path) except Exception as e: - logger.warning(f"Не удалось удалить временный файл БД: {e}") + logger.warning("[Backup] Не удалось удалить временный файл БД: {}", e) return str(archive_path), None except Exception as e: - logger.error(f"Непредвиденная ошибка при создании архива бекапа: {e}") + logger.error("[Backup] Ошибка создания архива: {}", e) return None, e @@ -209,19 +210,19 @@ def _cleanup_old_backups() -> Exception | None: file_mtime = datetime.fromtimestamp(backup_file.stat().st_mtime) if file_mtime < cutoff_date: backup_file.unlink() - logger.info(f"Удален старый бэкап: {backup_file}") + logger.info("[Backup] Удалён старый: {}", backup_file) for archive_file in backup_dir.glob("*.tar.gz"): if archive_file.is_file(): file_mtime = datetime.fromtimestamp(archive_file.stat().st_mtime) if file_mtime < cutoff_date: archive_file.unlink() - logger.info(f"Удален старый архив: {archive_file}") + logger.info("[Backup] Удалён старый архив: {}", archive_file) - logger.info("Очистка старых бэкапов завершена") + logger.info("[Backup] Очистка старых завершена") return None except Exception as e: - logger.error(f"Ошибка при удалении старых бэкапов: {e}") + logger.error("[Backup] Ошибка при очистке: {}", e) return e @@ -255,9 +256,9 @@ async def _send_backup_to_admins(backup_file_path: str) -> None: for admin_id in ADMIN_ID: try: await bot.send_document(chat_id=admin_id, document=backup_input_file) - logger.info(f"Бэкап базы данных отправлен админу: {admin_id}") + logger.info("[Backup] Отправлено админу: {}", admin_id) except Exception as e: - logger.error(f"Не удалось отправить бэкап админу {admin_id}: {e}") + logger.error("[Backup] Не отправлено админу {}: {}", admin_id, e) try: async with aiofiles.open(backup_file_path, "rb") as backup_file: @@ -267,12 +268,13 @@ async def _send_backup_to_admins(backup_file_path: str) -> None: if BACKUP_SEND_MODE == "default": await send_default() + logger.info("[Backup] Отправлено всем админам") elif BACKUP_SEND_MODE == "channel": channel_id = BACKUP_CHANNEL_ID.strip() thread_id = BACKUP_CHANNEL_THREAD_ID.strip() if not channel_id: - logger.error("BACKUP_CHANNEL_ID не задан для режима 'channel', fallback на default") + logger.error("[Backup] BACKUP_CHANNEL_ID не задан, fallback на default") await send_default() return send_kwargs = {"chat_id": channel_id, "document": backup_input_file} @@ -282,14 +284,14 @@ async def _send_backup_to_admins(backup_file_path: str) -> None: send_kwargs["caption"] = BACKUP_CAPTION try: await bot.send_document(**send_kwargs) - logger.info(f"Бэкап базы данных отправлен в канал: {channel_id} (топик: {thread_id})") + logger.info("[Backup] Отправлено в канал: {} (топик: {})", channel_id, thread_id) except Exception as e: - logger.error(f"Не удалось отправить бэкап в канал {channel_id}: {e}, fallback на default") + logger.error("[Backup] Не отправлено в канал {}: {}, fallback", channel_id, e) await send_default() elif BACKUP_SEND_MODE == "bot": if not BACKUP_OTHER_BOT_TOKEN: - logger.error("BACKUP_OTHER_BOT_TOKEN не задан для режима 'bot', fallback на default") + logger.error("[Backup] BACKUP_OTHER_BOT_TOKEN не задан, fallback") await send_default() return other_bot = Bot(token=BACKUP_OTHER_BOT_TOKEN) @@ -300,16 +302,16 @@ async def _send_backup_to_admins(backup_file_path: str) -> None: if BACKUP_CAPTION: send_kwargs["caption"] = BACKUP_CAPTION await other_bot.send_document(**send_kwargs) - logger.info(f"Бэкап базы данных отправлен админу через другого бота: {admin_id}") + logger.info("[Backup] Отправлено через другого бота админу: {}", admin_id) except Exception as e: - logger.error(f"Не удалось отправить бэкап админу {admin_id} через другого бота: {e}") + logger.error("[Backup] Не отправлено админу {} через другого бота: {}", admin_id, e) await other_bot.session.close() except Exception as e: - logger.error(f"Ошибка при отправке через другого бота: {e}, fallback на default") + logger.error("[Backup] Ошибка через другого бота: {}, fallback", e) await send_default() else: - logger.error(f"Неизвестный BACKUP_SEND_MODE: {BACKUP_SEND_MODE}, fallback на default") + logger.error("[Backup] Неизвестный BACKUP_SEND_MODE: {}, fallback", BACKUP_SEND_MODE) await send_default() except Exception as e: - logger.error(f"Ошибка при отправке бэкапа: {e}") + logger.error("[Backup] Ошибка при отправке: {}", e) raise diff --git a/utils/modules_manager.py b/utils/modules_manager.py index 8e7b8053..11cc7826 100644 --- a/utils/modules_manager.py +++ b/utils/modules_manager.py @@ -5,6 +5,7 @@ import sys from aiogram import Router +from core.executor import run_io from hooks.hooks import unregister_module_hooks from logger import logger @@ -97,7 +98,7 @@ class ModulesManager: if name in self.disabled: self.disabled.discard(name) - self._save_state() + await run_io(self._save_state) logger.info(f"[Modules] {name} запущен.") @@ -108,7 +109,7 @@ class ModulesManager: logger.info(f"[Modules] {name} уже остановлен или не найден.") if name not in self.disabled: self.disabled.add(name) - self._save_state() + await run_io(self._save_state) return try: @@ -127,7 +128,7 @@ class ModulesManager: if name not in self.disabled: self.disabled.add(name) - self._save_state() + await run_io(self._save_state) logger.info(f"[Modules] {name} остановлен.") diff --git a/utils/versioning.py b/utils/versioning.py index b0cfcca3..001cbcce 100644 --- a/utils/versioning.py +++ b/utils/versioning.py @@ -17,7 +17,7 @@ def _get_git_commit_number_uncached() -> str: if not os.path.isdir(os.path.join(cwd, ".git")): cwd = "/root/Solo_bot" - logger.info(f"[Git] .git не найден в текущем каталоге, используем {cwd}") + logger.info("[Git] .git не найден, используем {}", cwd) env = os.environ.copy() env["GIT_DIR"] = os.path.join(cwd, ".git") @@ -48,7 +48,7 @@ def _get_git_commit_number_uncached() -> str: branch = "dev" except Exception as e: - logger.error(f"[Git] Ошибка при получении локального коммита: {e}") + logger.error("[Git] Ошибка локального коммита: {}", e) return f"\n(Требуется обновление через CLI (команда sudo solobot): {e})" try: @@ -72,7 +72,7 @@ def _get_git_commit_number_uncached() -> str: f'
#{remote_number})' ) except Exception as e: - logger.error(f"[Git] Ошибка при получении удалённого коммита: {e}") + logger.error("[Git] Ошибка удалённого коммита: {}", e) return "\n(Требуется обновление через CLI, команда sudo solobot)"