Refactor health check functionality in POE project. Removed readiness endpoint from health_check.py and improved error handling for sensor status retrieval. Updated logging to reduce noise and adjusted health check server startup process in main.py. Modified Nomad job configuration for network mode and resource allocation, enhancing overall system performance and stability.

This commit is contained in:
Naab2k3
2025-06-23 13:46:59 +07:00
parent 8991a02bf5
commit 9b0f4f6236
4 changed files with 148 additions and 339 deletions

65
main.py
View File

@ -14,66 +14,31 @@ Author: POE Project
import time
import logging
import sys
import signal
from health_check import HealthCheckServer
from sensor_bridge import main_loop
# Global health server for cleanup
health_server = None
def signal_handler(signum, frame):
"""Handle shutdown signals gracefully"""
global health_server
logging.info(f"Received signal {signum}, shutting down gracefully...")
if health_server:
health_server.stop()
sys.exit(0)
import os
if __name__ == "__main__":
# Setup logging
# Setup logging first
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout),
]
handlers=[logging.StreamHandler(sys.stdout)]
)
# Setup signal handlers
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler)
logging.info("POE Sensor Bridge starting up...")
try:
# Start health check server first
logging.info("Starting health check server...")
health_server = HealthCheckServer()
# Import after logging is setup to avoid circular import issues
from sensor_bridge import main_loop
if health_server.start():
logging.info("Health check server started successfully")
# Give health check server time to be ready
time.sleep(3)
# Verify health check is working
if health_server.is_running():
logging.info("Health check server verified as running")
logging.info("Starting main sensor loop...")
main_loop()
else:
logging.error("Health check server failed to start properly")
sys.exit(1)
else:
logging.error("Failed to start health check server")
sys.exit(1)
except KeyboardInterrupt:
logging.info("Received keyboard interrupt, shutting down...")
# Give the system a moment to initialize
time.sleep(2)
logging.info("Starting main sensor loop...")
main_loop()
except ImportError as e:
logging.error(f"Import error: {e}")
sys.exit(1)
except Exception as e:
logging.error(f"Fatal error: {e}", exc_info=True)
sys.exit(1)
finally:
if health_server:
health_server.stop()
logging.info("POE Sensor Bridge shutdown complete")
sys.exit(1)