调整指令信息
This commit is contained in:
@@ -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 方法"
|
||||
)
|
||||
Reference in New Issue
Block a user