chore: Add health checks to native Python runner (#19023)

This commit is contained in:
Iván Ovejero
2025-09-01 10:24:03 +02:00
committed by GitHub
parent 027edbe89d
commit b08d993529
6 changed files with 99 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
import asyncio
import logging
import sys
from typing import Optional
from src.env import parse_env_vars
from src.logs import setup_logging
@@ -14,12 +15,25 @@ async def main():
logger.info("Starting runner...")
try:
opts = parse_env_vars()
task_runner_opts, health_check_opts = parse_env_vars()
except ValueError as e:
logger.error(str(e))
sys.exit(1)
task_runner = TaskRunner(opts)
task_runner = TaskRunner(task_runner_opts)
health_check_server: Optional["HealthCheckServer"] = None
if health_check_opts.enabled:
from src.health import HealthCheckServer
health_check_server = HealthCheckServer()
try:
await health_check_server.start(
health_check_opts.host, health_check_opts.port
)
except OSError as e:
logger.error(f"Failed to start health check server: {e}")
sys.exit(1)
try:
await task_runner.start()
@@ -27,7 +41,9 @@ async def main():
logger.info("Shutting down runner...")
finally:
await task_runner.stop()
logger.info("Runner stopped")
if health_check_server:
await health_check_server.stop()
if __name__ == "__main__":