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