[ВОЛК] проверяем urlopen для отлова бага с volk26_nri
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-12-21 13:13:49 +03:00
parent 8772eaaf3d
commit 58a8f1909f
+28 -1
View File
@@ -4,6 +4,7 @@ import time
import traceback
from datetime import datetime
from urllib.request import urlopen
from urllib.error import URLError, HTTPError
from dotenv import load_dotenv
import mysql.connector
from mysql.connector import Error
@@ -155,7 +156,20 @@ def load_categories():
log_message(f"Запрос описания для категории {category_id} из {desc_url}")
log_message("отладочное сообщение для проверки вывода в лог-файл")
with urlopen(desc_url) as response:
desc_response = None
try:
response = urlopen(desc_url)
log_message("urlopen успешно выполнен")
except (URLError, HTTPError, OSError) as e:
error_msg = f"Ошибка сетевого подключения при запросе описания категории {category_id} из {desc_url}: {type(e).__name__}: {e}"
log_message(error_msg, "ERROR")
traceback_str = traceback.format_exc()
log_message(f"Трассировка сетевой ошибки для категории {category_id}:\n{traceback_str}", "ERROR")
# Пропускаем эту категорию и продолжаем обработку
continue
try:
with response:
# Явно указываем кодировку UTF-8 при декодировании
raw_data = response.read()
log_message("raw data read")
@@ -175,6 +189,19 @@ def load_categories():
log_message(error_msg, "ERROR")
# Пропускаем эту категорию и продолжаем обработку
continue
except Exception as e:
error_msg = f"Ошибка при чтении ответа для категории {category_id}: {type(e).__name__}: {e}"
log_message(error_msg, "ERROR")
traceback_str = traceback.format_exc()
log_message(f"Трассировка ошибки чтения для категории {category_id}:\n{traceback_str}", "ERROR")
# Пропускаем эту категорию и продолжаем обработку
continue
# Проверяем, что desc_response был успешно получен
if desc_response is None:
error_msg = f"Не удалось получить ответ для категории {category_id}"
log_message(error_msg, "ERROR")
continue
# Проверка версии API
api_version = desc_response.get('api_version')