Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
4.7 KiB
4.7 KiB
🔄 Руководство по обновлению PDF Processor
✅ Что добавлено
- Асинхронная обработка -
/process/asyncendpoint - Проверка статуса задач -
/process/status/{task_id} - Мониторинг метрик -
/metricsи/metrics/prometheus - Улучшенная документация - Swagger с примерами
- 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'
⚠️ Важные замечания
- Redis обязателен для асинхронной обработки
- TTL задач - результаты хранятся 1 час
- Таймаут - максимальное время обработки 5 минут
- 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