Browse Source

fix: 修复定时任务监听函数中事件没有job_id报错的问题

master
insistence 10 months ago
parent
commit
d8e3f7dca1
  1. 73
      ruoyi-fastapi-backend/config/get_scheduler.py

73
ruoyi-fastapi-backend/config/get_scheduler.py

@ -221,39 +221,40 @@ class SchedulerUtil:
if event_type == 'JobExecutionEvent' and event.exception: if event_type == 'JobExecutionEvent' and event.exception:
exception_info = str(event.exception) exception_info = str(event.exception)
status = '1' status = '1'
job_id = event.job_id if hasattr(event, 'job_id'):
query_job = cls.get_scheduler_job(job_id=job_id) job_id = event.job_id
if query_job: query_job = cls.get_scheduler_job(job_id=job_id)
query_job_info = query_job.__getstate__() if query_job:
# 获取任务名称 query_job_info = query_job.__getstate__()
job_name = query_job_info.get('name') # 获取任务名称
# 获取任务组名 job_name = query_job_info.get('name')
job_group = query_job._jobstore_alias # 获取任务组名
# 获取任务执行器 job_group = query_job._jobstore_alias
job_executor = query_job_info.get('executor') # 获取任务执行器
# 获取调用目标字符串 job_executor = query_job_info.get('executor')
invoke_target = query_job_info.get('func') # 获取调用目标字符串
# 获取调用函数位置参数 invoke_target = query_job_info.get('func')
job_args = ','.join(query_job_info.get('args')) # 获取调用函数位置参数
# 获取调用函数关键字参数 job_args = ','.join(query_job_info.get('args'))
job_kwargs = json.dumps(query_job_info.get('kwargs')) # 获取调用函数关键字参数
# 获取任务触发器 job_kwargs = json.dumps(query_job_info.get('kwargs'))
job_trigger = str(query_job_info.get('trigger')) # 获取任务触发器
# 构造日志消息 job_trigger = str(query_job_info.get('trigger'))
job_message = f"事件类型: {event_type}, 任务ID: {job_id}, 任务名称: {job_name}, 执行于{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" # 构造日志消息
job_log = JobLogModel( job_message = f"事件类型: {event_type}, 任务ID: {job_id}, 任务名称: {job_name}, 执行于{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
jobName=job_name, job_log = JobLogModel(
jobGroup=job_group, jobName=job_name,
jobExecutor=job_executor, jobGroup=job_group,
invokeTarget=invoke_target, jobExecutor=job_executor,
jobArgs=job_args, invokeTarget=invoke_target,
jobKwargs=job_kwargs, jobArgs=job_args,
jobTrigger=job_trigger, jobKwargs=job_kwargs,
jobMessage=job_message, jobTrigger=job_trigger,
status=status, jobMessage=job_message,
exceptionInfo=exception_info, status=status,
createTime=datetime.now(), exceptionInfo=exception_info,
) createTime=datetime.now(),
session = SessionLocal() )
JobLogService.add_job_log_services(session, job_log) session = SessionLocal()
session.close() JobLogService.add_job_log_services(session, job_log)
session.close()

Loading…
Cancel
Save