fix(agent): run Ansible executor in worker
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m36s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled

This commit is contained in:
ogt
2026-07-10 17:04:53 +08:00
parent 04d98058fe
commit 4b2ef8b63f
6 changed files with 115 additions and 2 deletions

View File

@@ -608,6 +608,21 @@ async def _main() -> None:
# Initialize and start worker
worker = await init_signal_worker()
ansible_check_mode_task: asyncio.Task[Any] | None = None
if settings.ENABLE_AWOOOP_ANSIBLE_CHECK_MODE_WORKER:
from src.jobs.awooop_ansible_check_mode_job import (
run_awooop_ansible_check_mode_loop,
)
ansible_check_mode_task = asyncio.create_task(
run_awooop_ansible_check_mode_loop(),
name="run_awooop_ansible_check_mode_loop",
)
logger.info(
"signal_worker_ansible_check_mode_loop_started",
interval_seconds=settings.AWOOOP_ANSIBLE_CHECK_MODE_INTERVAL_SECONDS,
batch_limit=settings.AWOOOP_ANSIBLE_CHECK_MODE_BATCH_LIMIT,
)
# Setup graceful shutdown
shutdown_event = asyncio.Event()
@@ -634,6 +649,12 @@ async def _main() -> None:
# Graceful shutdown
logger.info("signal_worker_shutting_down")
if ansible_check_mode_task is not None:
ansible_check_mode_task.cancel()
try:
await ansible_check_mode_task
except asyncio.CancelledError:
pass
await worker.stop()
await close_worker_redis_pool() # 關閉 Worker 專屬連線
await close_redis_pool()