=== Анализ проблем производительности и зависаний === 🔍 СИМПТОМЫ: • Кнопки не работают сразу • Долгое ожидание ответа • Несколько сообщений приходят сразу после долгого ожидания • Кнопка 'На взлёт' заработала с задержкой ⚡ ВОЗМОЖНЫЕ ПРИЧИНЫ ЗАВИСАНИЙ: 1. 🐌 БЛОКИРУЮЩИЕ ОПЕРАЦИИ: • sleep() в коде - блокирует выполнение • OpenAI API запросы - могут длиться 10-30 секунд • Большие файлы (видео) - долгая загрузка в Telegram • Медленные запросы к БД 2. 🔄 ПОВТОРНЫЕ ОБРАБОТКИ: • Webhook timeout → Telegram повторяет запрос • Callback query не подтверждается вовремя • Дублирование запросов из-за медленного ответа 3. 📊 РЕСУРСЫ СЕРВЕРА: • Высокая нагрузка CPU • Нехватка памяти • Медленный диск I/O • Проблемы с сетью 🔍 ПРОВЕРЯЕМ БЛОКИРУЮЩИЕ ОПЕРАЦИИ: 1. ПОИСК sleep() В КОДЕ: 📄 handlers/MessageHandler.php: sleep(1) секунд sleep(1) секунд 2. ПРОВЕРКА ТАЙМАУТОВ API: 3. ПРОВЕРКА РАЗМЕРОВ МЕДИА ФАЙЛОВ: 📁 assets/videos/zalina.mp4: 5.25 MB ✅ OK 📁 assets/videos/timofey.MP4: 7.21 MB ✅ OK 📁 assets/images/start_image.jpg: 0.15 MB ✅ OK 🔧 КРИТИЧЕСКИЕ МЕСТА ДЛЯ WEBHOOK: 1. 🗝️ ВТОРОЙ КЛЮЧ (handleSecondKey): • sleep(1) - 1 секунда • sleep(10) - 10 секунд ⚠️ БЛОКИРУЕТ WEBHOOK! • sendPhoto() - загрузка картинки • sendVideo() - загрузка видео ⚠️ МОЖЕТ ЗАВИСНУТЬ! 2. 💰 AI РАСЧЕТЫ (sendAICalculation): • OpenAI API запрос - 10-30 секунд ⚠️ БЛОКИРУЕТ! • Сложные математические расчеты • Формирование больших промптов 3. 🎬 ВИДЕО ОТПРАВКА: • CURLFile создание • Multipart upload в Telegram • Может зависнуть на больших файлах ⚡ РЕШЕНИЯ ДЛЯ УСКОРЕНИЯ: 1. 🚀 БЫСТРЫЙ ОТВЕТ WEBHOOK: • Сразу answerCallbackQuery() • Минимум обработки в webhook • Тяжелые операции - в фон 2. 🔄 АСИНХРОННЫЕ ОПЕРАЦИИ: • AI запросы через очередь • Медиа файлы предзагружать • Убрать sleep() из webhook 3. 📊 ОПТИМИЗАЦИЯ БД: • Индексы для быстрых запросов • Кэширование данных пользователя • Минимум запросов в webhook 🎯 РЕКОМЕНДАЦИИ: 1. КРИТИЧНО - УБРАТЬ sleep(10) из handleSecondKey: • Заменить на отложенную отправку • Использовать cron для отложенных сообщений 2. УСКОРИТЬ OpenAI запросы: • Уменьшить MAX_TOKENS • Упростить промпты • Добавить fallback без AI 3. ОПТИМИЗИРОВАТЬ медиа: • Сжать видео файлы • Предзагрузить в Telegram • Использовать file_id вместо upload 🚨 СРОЧНЫЕ ИСПРАВЛЕНИЯ: 1. Убрать sleep(10) из второго ключа 2. Ускорить callback query ответы 3. Добавить timeout protection 4. Логировать время выполнения 💡 Основная проблема - блокирующие операции в webhook!