modify: task 集成数据库操作

This commit is contained in:
2026-04-15 16:05:31 +08:00
parent 84b122e93a
commit 69d1c5fc67
39 changed files with 1374 additions and 70 deletions
+12 -5
View File
@@ -48,7 +48,8 @@ def acquire_scheduler_lock():
class TaskService:
"""任务调度服务"""
def __init__(self):
def __init__(self, async_session_maker=None):
self.async_session_maker = async_session_maker
# 使用独立的 SQLite 数据库存储任务(与业务数据库分开)
self.job_store_db_path = config.get("scheduler", {}).get(
"job_store_path", "scheduler_jobs.db"
@@ -172,15 +173,21 @@ class TaskService:
async def add_date_job(
self,
func: Callable,
run_date: datetime,
run_date: Optional[datetime] = None,
job_id: Optional[str] = None,
args: Optional[List] = None,
kwargs: Optional[Dict] = None,
replace_existing: bool = True,
) -> Job:
"""添加一次性任务"""
trigger = DateTrigger(run_date=run_date)
job = self.scheduler.add_job(
func, trigger=trigger, id=job_id, args=args or [], kwargs=kwargs or {}
func,
trigger=trigger,
id=job_id,
args=args or [],
kwargs=kwargs or {},
replace_existing=replace_existing,
)
logger.info(f"添加一次性任务: {job.id}")
return job
@@ -270,10 +277,10 @@ class TaskService:
_task_service: Optional[TaskService] = None
def get_task_service_instance():
def get_task_service_instance(async_session_maker=None):
global _task_service
if _task_service is None:
_task_service = TaskService()
_task_service = TaskService(async_session_maker)
return _task_service