Files
xiaobaifupan/next/backend/jobs/operations.py
T

26 lines
668 B
Python

from __future__ import annotations
import asyncio
import logging
from backend.features.operations.service import OperationsService
logger = logging.getLogger(__name__)
async def run_operations_scheduler(
service: OperationsService, stop: asyncio.Event
) -> None:
while not stop.is_set():
try:
await asyncio.to_thread(service.tick)
except Exception:
logger.exception(
"Operations scheduler tick failed",
extra={"event": "operations.scheduler.failed"},
)
try:
await asyncio.wait_for(stop.wait(), timeout=5)
except TimeoutError:
pass