Files
crm.clientright.ru/pdf_processor/UPDATE_GUIDE.md
Fedor 01c4fe80b5 chore: snapshot current working tree changes
Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
2026-03-26 14:19:01 +03:00

4.7 KiB
Raw Blame History

🔄 Руководство по обновлению PDF Processor

Что добавлено

  1. Асинхронная обработка - /process/async endpoint
  2. Проверка статуса задач - /process/status/{task_id}
  3. Мониторинг метрик - /metrics и /metrics/prometheus
  4. Улучшенная документация - Swagger с примерами
  5. Redis интеграция - Хранение статусов задач

🚀 Обновление сервиса

1. Остановить текущий контейнер

cd /var/www/fastuser/data/www/crm.clientright.ru/pdf_processor
docker-compose down

2. Пересобрать образ с новыми зависимостями

docker-compose build --no-cache

3. Запустить обновленный сервис

docker-compose up -d

4. Проверить статус

docker-compose ps
curl http://147.45.146.17:8300/health

🧪 Тестирование

Тест 1: Health Check

curl http://147.45.146.17:8300/health

Ожидаемый ответ:

{
  "status": "healthy",
  "timestamp": "...",
  "version": "1.0.0",
  "redis_connected": true
}

Тест 2: Синхронная обработка

curl -X POST http://147.45.146.17:8300/process \
  -H "X-API-Key: pdf-processor-secret-key-2025" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "files": [{
        "file": {
          "url": "https://example.com/test.pdf",
          "file_name": "test.pdf"
        }
      }]
    },
    "mode": "--pdf-merge"
  }'

Тест 3: Асинхронная обработка

# Создать задачу
TASK_ID=$(curl -X POST http://147.45.146.17:8300/process/async \
  -H "X-API-Key: pdf-processor-secret-key-2025" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "files": [{
        "file": {
          "url": "https://example.com/test.pdf",
          "file_name": "test.pdf"
        }
      }]
    },
    "mode": "--pdf-merge"
  }' | jq -r '.task_id')

echo "Task ID: $TASK_ID"

# Проверить статус
curl -X GET http://147.45.146.17:8300/process/status/$TASK_ID \
  -H "X-API-Key: pdf-processor-secret-key-2025"

Тест 4: Метрики

# JSON метрики
curl -X GET http://147.45.146.17:8300/metrics \
  -H "X-API-Key: pdf-processor-secret-key-2025"

# Prometheus метрики
curl -X GET http://147.45.146.17:8300/metrics/prometheus \
  -H "X-API-Key: pdf-processor-secret-key-2025" \
  -H "Accept: text/plain"

Тест 5: Swagger UI

Откройте в браузере:

http://147.45.146.17:8300/docs

🔧 Настройка переменных окружения

Если нужно изменить настройки Redis, создайте .env файл:

cat > .env << EOF
PDF_PROCESSOR_API_KEY=your-secure-api-key-here
REDIS_HOST=crm.clientright.ru
REDIS_PORT=6379
REDIS_PASSWORD=CRM_Redis_Pass_2025_Secure!
REDIS_DB=0
EOF

Затем перезапустите:

docker-compose down
docker-compose up -d

📊 Мониторинг

Просмотр логов

docker-compose logs -f pdf_processor

Проверка метрик

# Каждые 10 секунд
watch -n 10 'curl -s -H "X-API-Key: pdf-processor-secret-key-2025" http://147.45.146.17:8300/metrics | jq'

⚠️ Важные замечания

  1. Redis обязателен для асинхронной обработки
  2. TTL задач - результаты хранятся 1 час
  3. Таймаут - максимальное время обработки 5 минут
  4. API Key - измените дефолтный ключ в production!

🐛 Решение проблем

Redis не подключается

Проверьте:

  • Доступность Redis: redis-cli -h crm.clientright.ru -p 6379 -a CRM_Redis_Pass_2025_Secure! ping
  • Переменные окружения в docker-compose.yml
  • Логи контейнера: docker-compose logs pdf_processor

Задачи не сохраняются

  • Проверьте подключение к Redis
  • Проверьте логи на ошибки
  • Убедитесь что Redis доступен из контейнера

Метрики не обновляются

  • Метрики хранятся в памяти, при перезапуске сбрасываются
  • Для production используйте внешнее хранилище (Redis, Prometheus)

Дата: 2025-12-29
Версия: 1.0.0