Skip to content

Commit d8e3f7d

Browse files
committed
fix: 修复定时任务监听函数中事件没有job_id报错的问题
1 parent 5ee1a64 commit d8e3f7d

File tree

1 file changed

+37
-36
lines changed

1 file changed

+37
-36
lines changed

ruoyi-fastapi-backend/config/get_scheduler.py

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -221,39 +221,40 @@ def scheduler_event_listener(cls, event):
221221
if event_type == 'JobExecutionEvent' and event.exception:
222222
exception_info = str(event.exception)
223223
status = '1'
224-
job_id = event.job_id
225-
query_job = cls.get_scheduler_job(job_id=job_id)
226-
if query_job:
227-
query_job_info = query_job.__getstate__()
228-
# 获取任务名称
229-
job_name = query_job_info.get('name')
230-
# 获取任务组名
231-
job_group = query_job._jobstore_alias
232-
# 获取任务执行器
233-
job_executor = query_job_info.get('executor')
234-
# 获取调用目标字符串
235-
invoke_target = query_job_info.get('func')
236-
# 获取调用函数位置参数
237-
job_args = ','.join(query_job_info.get('args'))
238-
# 获取调用函数关键字参数
239-
job_kwargs = json.dumps(query_job_info.get('kwargs'))
240-
# 获取任务触发器
241-
job_trigger = str(query_job_info.get('trigger'))
242-
# 构造日志消息
243-
job_message = f"事件类型: {event_type}, 任务ID: {job_id}, 任务名称: {job_name}, 执行于{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
244-
job_log = JobLogModel(
245-
jobName=job_name,
246-
jobGroup=job_group,
247-
jobExecutor=job_executor,
248-
invokeTarget=invoke_target,
249-
jobArgs=job_args,
250-
jobKwargs=job_kwargs,
251-
jobTrigger=job_trigger,
252-
jobMessage=job_message,
253-
status=status,
254-
exceptionInfo=exception_info,
255-
createTime=datetime.now(),
256-
)
257-
session = SessionLocal()
258-
JobLogService.add_job_log_services(session, job_log)
259-
session.close()
224+
if hasattr(event, 'job_id'):
225+
job_id = event.job_id
226+
query_job = cls.get_scheduler_job(job_id=job_id)
227+
if query_job:
228+
query_job_info = query_job.__getstate__()
229+
# 获取任务名称
230+
job_name = query_job_info.get('name')
231+
# 获取任务组名
232+
job_group = query_job._jobstore_alias
233+
# 获取任务执行器
234+
job_executor = query_job_info.get('executor')
235+
# 获取调用目标字符串
236+
invoke_target = query_job_info.get('func')
237+
# 获取调用函数位置参数
238+
job_args = ','.join(query_job_info.get('args'))
239+
# 获取调用函数关键字参数
240+
job_kwargs = json.dumps(query_job_info.get('kwargs'))
241+
# 获取任务触发器
242+
job_trigger = str(query_job_info.get('trigger'))
243+
# 构造日志消息
244+
job_message = f"事件类型: {event_type}, 任务ID: {job_id}, 任务名称: {job_name}, 执行于{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
245+
job_log = JobLogModel(
246+
jobName=job_name,
247+
jobGroup=job_group,
248+
jobExecutor=job_executor,
249+
invokeTarget=invoke_target,
250+
jobArgs=job_args,
251+
jobKwargs=job_kwargs,
252+
jobTrigger=job_trigger,
253+
jobMessage=job_message,
254+
status=status,
255+
exceptionInfo=exception_info,
256+
createTime=datetime.now(),
257+
)
258+
session = SessionLocal()
259+
JobLogService.add_job_log_services(session, job_log)
260+
session.close()

0 commit comments

Comments
 (0)