Files
2026-05-14 18:38:09 +03:00

69 lines
1.6 KiB
Python

import os
import sys
import signal
import logging
from pathlib import Path
from dotenv import load_dotenv
# Add the python directory to sys.path
current_dir = Path(__file__).parent
sys.path.insert(0, str(current_dir))
from application import Application
from solver import Solver
from kv import Cache
# Load environment variables
load_dotenv()
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def main():
logger.info("Logger initialized")
# Get Redis address from environment
redis_addr = os.getenv("REDIS_ADDR", "localhost:6379")
# Initialize cache
try:
cache = Cache(redis_addr)
logger.info("Cache initialized")
except Exception as e:
logger.error(f"Failed to initialize cache: {e}")
raise
# Initialize WASM solver
try:
solver = Solver()
logger.info("WASM solver initialized")
except Exception as e:
logger.error(f"Failed to initialize WASM solver: {e}")
raise
# Create application
app = Application(solver, cache)
logger.info("Application initialized")
def signal_handler(sig, frame):
logger.info("Received signal, shutting down...")
app.close()
logger.info("Application stopped")
exit(0)
# Handle SIGINT and SIGTERM
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
logger.info("Application started on port 8080")
app.run(host="0.0.0.0", port=8080, debug=False)
if __name__ == "__main__":
main()