调整指令信息

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