- Исправлена потеря документов при обновлении черновика (SQL объединяет вместо перезаписи) - Исправлено определение типа документа (приоритет field_label над field_name) - Исправлены дубликаты в documents_meta и documents_uploaded - Добавлена передача group_index с фронтенда для правильного field_name - Исправлены все документы в таблице clpr_claim_documents с правильными field_name - Обновлены SQL запросы: claimsave и claimsave_final для нового флоу - Добавлена поддержка multi-file upload для одного документа - Исправлены дубликаты в списке загруженных документов на фронтенде Файлы: - SQL: SQL_CLAIMSAVE_FIXED_NEW_FLOW.sql, SQL_CLAIMSAVE_FINAL_FIXED_NEW_FLOW_WITH_UPLOADED.sql - n8n: N8N_CODE_PROCESS_UPLOADED_FILES_FIXED.js (поддержка group_index) - Backend: documents.py (передача group_index в n8n) - Frontend: StepWizardPlan.tsx (передача group_index, исправление дубликатов) - Скрипты: fix_claim_documents_field_names.py, fix_documents_meta_duplicates.py Результат: документы больше не теряются, имеют правильные типы и field_name
6.5 KiB
6.5 KiB
🔧 Troubleshooting: Redis Trigger в n8n зависает
🐛 Проблема
Redis Trigger в n8n перестаёт слушать канал ticket_form:description, хотя workflow активен.
🔍 Возможные причины
1. Потеря соединения с Redis
- Соединение оборвалось из-за сетевых проблем
- Redis перезапустился, но n8n не переподключился
- Таймаут соединения
Решение:
- Проверить логи n8n на ошибки подключения
- Убедиться, что Redis доступен:
redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" PING - Перезапустить workflow в n8n (отключить → включить)
2. Проблемы с памятью/ресурсами
- n8n исчерпал память
- Слишком много активных workflows
Решение:
- Проверить использование памяти:
docker stats n8n_container - Увеличить лимиты памяти для n8n
- Перезапустить n8n контейнер
3. Долгие операции в workflow
- Workflow обрабатывает сообщение слишком долго
- Блокирует обработку новых сообщений
Решение:
- Оптимизировать workflow (убрать долгие операции)
- Использовать асинхронную обработку
- Разбить workflow на несколько этапов
4. Проблемы с сетью
- Временные сбои сети между n8n и Redis
- Firewall блокирует соединение
Решение:
- Проверить сетевую связность:
ping crm.clientright.ru - Проверить firewall правила
- Использовать retry-логику в workflow
🛠️ Решения для предотвращения
1. Мониторинг подписчиков
Запустить скрипт мониторинга:
cd /var/www/fastuser/data/www/crm.clientright.ru/ticket_form
python3 monitor_n8n_redis_trigger.py
Или добавить в cron для автоматической проверки:
# Проверка каждые 5 минут
*/5 * * * * cd /var/www/fastuser/data/www/crm.clientright.ru/ticket_form && python3 monitor_n8n_redis_trigger.py >> logs/n8n_monitor_cron.log 2>&1
2. Health Check для Redis Trigger
Добавить в workflow n8n:
- Schedule Trigger (каждые 5 минут)
- Redis Publish (отправить тестовое сообщение)
- If Node (проверить, обработалось ли сообщение)
- Send Alert (если нет - отправить уведомление)
3. Автоматический перезапуск workflow
Создать скрипт для автоматического перезапуска:
#!/bin/bash
# Проверка и перезапуск workflow если нет подписчиков
SUBS=$(redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" PUBSUB NUMSUB "ticket_form:description" | tail -1)
if [ "$SUBS" -eq "0" ]; then
echo "⚠️ Нет подписчиков! Требуется перезапуск workflow"
# Здесь можно добавить API вызов для перезапуска workflow через n8n API
fi
4. Настройка Redis для стабильности
В redis.conf:
# Таймаут для неактивных соединений (0 = отключить)
timeout 0
# Keepalive для TCP соединений
tcp-keepalive 60
# Максимальное количество клиентов
maxclients 10000
5. Логирование в n8n
Включить детальное логирование для Redis Trigger:
- Settings → Logging → Level:
debug - Проверить логи на ошибки подключения
📊 Диагностика
Проверка подписчиков
redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" PUBSUB NUMSUB "ticket_form:description"
Проверка подключения n8n к Redis
# Из контейнера n8n
docker exec -it n8n_container redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" PING
Тестовая публикация
redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" \
PUBLISH "ticket_form:description" '{"type":"test","session_id":"test123"}'
Проверка логов n8n
docker logs n8n_container | grep -i redis
docker logs n8n_container | grep -i "ticket_form:description"
✅ Быстрое решение
Если workflow завис:
- Отключить workflow в n8n (кнопка "Active")
- Сохранить изменения
- Включить обратно (кнопка "Active")
- Проверить подписчиков:
PUBSUB NUMSUB "ticket_form:description"
Если не помогло:
-
Перезапустить n8n контейнер:
docker restart n8n_container -
Проверить Redis:
redis-cli -h crm.clientright.ru -p 6379 -a "CRM_Redis_Pass_2025_Secure!" PING -
Проверить сеть между n8n и Redis
🔄 Рекомендации для продакшена
- Мониторинг: Настроить автоматический мониторинг подписчиков
- Алерты: Настроить уведомления при отсутствии подписчиков
- Health Checks: Регулярные проверки работоспособности
- Логирование: Детальное логирование всех операций с Redis
- Резервирование: Рассмотреть использование Redis Sentinel для высокой доступности
📝 Логи для анализа
Проверить логи:
/var/www/fastuser/data/www/crm.clientright.ru/ticket_form/logs/n8n_redis_monitor.log- мониторингdocker logs n8n_container- логи n8n/var/www/fastuser/data/www/crm.clientright.ru/ticket_form/backend/logs/- логи backend