19 lines
601 B
Python
19 lines
601 B
Python
"""任务超时检查服务。"""
|
|
import logging
|
|
|
|
import redis.asyncio as aioredis
|
|
|
|
from app.repository.task_repo import TaskRepo
|
|
from app.services.task_service import TaskService
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class TimeoutService:
|
|
def __init__(self, redis: aioredis.Redis, task_repo: TaskRepo | None = None):
|
|
self.redis = redis
|
|
self.task_repo = task_repo or TaskRepo(redis)
|
|
|
|
async def check(self) -> int:
|
|
"""扫描 running 任务,超时自动标记失败,返回失败数。"""
|
|
return await TaskService(self.redis, self.task_repo).check_timeouts() |