зарефакторил отправку данных

main
Sergey Revyakin 1 month ago
parent b45fca8c15
commit 378fa1c644

@ -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))

Loading…
Cancel
Save