调整指令信息

This commit is contained in:
liuwei
2025-03-19 09:39:38 +08:00
parent f9860c95e7
commit c65576a09b

View File

@@ -38,26 +38,28 @@ def scheduled_job(cron: str, name: Optional[str] = None, enabled: bool = True):
return decorator return decorator
# 修改 register_scheduled_jobs 函数
def register_scheduled_jobs(job_instance): def register_scheduled_jobs(job_instance):
"""注册所有标记了 @scheduled_job 装饰器的方法
Args:
job_instance: 包含定时任务的实例
""" """
注册所有被装饰的定时任务到Job实例 if not hasattr(job_instance, 'scheduled_jobs'):
return
:param job_instance: Job类实例必须有add_job方法 for task in job_instance.scheduled_jobs:
:return: 注册的任务数量 method = getattr(job_instance, task["method_name"])
""" # 使用正确的方法添加任务
count = 0 if hasattr(job_instance, 'add_job'):
# 获取实例的所有方法
for name, method in inspect.getmembers(job_instance, predicate=inspect.ismethod):
# 检查原始函数是否在scheduled_tasks中
original_func = method.__func__
for task in scheduled_tasks:
if task["func"].__name__ == original_func.__name__ and task["enabled"]:
# 注册任务
job_instance.add_job(method, task["cron"], task["name"]) job_instance.add_job(method, task["cron"], task["name"])
count += 1 elif hasattr(job_instance, 'add_scheduled_job'):
break job_instance.add_scheduled_job(method, task["cron"], task["name"])
else:
LOG.info(f"已注册 {count} 个定时任务") # 如果没有合适的方法,记录错误
return count import logging
logging.getLogger(__name__).error(
f"无法为 {job_instance.__class__.__name__} 添加定时任务,"
f"缺少 add_job 或 add_scheduled_job 方法"
)