diff --git a/src/utils/datas_processing.py b/src/utils/datas_processing.py index c0820f2..f6ca104 100644 --- a/src/utils/datas_processing.py +++ b/src/utils/datas_processing.py @@ -27,18 +27,34 @@ def agregator(freq, alarm): def send_data(data, localhost, localport, endpoint): """ - Отправка данных по посту на модуль сервер. + Отправка данных по POST на модуль сервер. :param data: Данные для отправки. :param localhost: Хост модуль сервера. :param localport: Порт модуль сервера. """ + def _post(port): + url = "http://{0}:{1}/{2}".format(localhost, port, endpoint) + return requests.post(url, json=data), url + try: - response = requests.post("http://{0}:{1}/{2}".format(localhost, localport, endpoint), json=data) + response, url = _post(localport) if response.status_code == 200: - print("Данные успешно отправлены и приняты!") - else: - print("Ошибка при отправке данных: ", response.status_code) + print("Данные успешно отправлены и приняты!", url) + return + + # Частый кейс: порт 5000 занят локальным registry (DroneDetectPCSoft). + # Пробуем порт модуля сервера из env (например, 5010). + fallback_port = os.getenv('GENERAL_SERVER_PORT') + if response.status_code == 404 and fallback_port and str(localport) != str(fallback_port): + response_fb, url_fb = _post(fallback_port) + if response_fb.status_code == 200: + print("Данные успешно отправлены и приняты!", url_fb) + return + print("Ошибка при отправке данных:", response_fb.status_code, url_fb) + return + + print("Ошибка при отправке данных:", response.status_code, url) except Exception as e: print(str(e))