email-amazon/unified-worker/email-worker/main.py

51 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""
Main entry point for unified email worker
"""
import sys
import signal
from logger import log
from config import config
from unified_worker import UnifiedWorker
from health_server import start_health_server
from metrics.prometheus import start_metrics_server
def main():
"""Main entry point"""
# Create worker instance
worker = UnifiedWorker()
# Signal handlers for graceful shutdown
def signal_handler(signum, frame):
log(f"Received signal {signum}")
worker.stop()
sys.exit(0)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler) # Fixed: was signalIGINT in old version
# Setup worker
worker.setup()
# Start metrics server (if available)
metrics = start_metrics_server(config.metrics_port)
if metrics:
worker.set_metrics(metrics)
# Start health check server
start_health_server(worker, worker.dynamodb.available)
# Print startup banner
worker.print_startup_banner()
# Start worker
worker.start()
if __name__ == '__main__':
main()