diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 7b8c0d79..de8db82e 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2794,7 +2794,9 @@ public void execute() { - 3、【调整】Docker基础镜像调整为eclipse-temurin; - 4、【优化】父POM依赖配置优化,移除容易配置;合并PR-3926; - 5、【升级】升级多项maven依赖至较新版本; -- 6、【TODO】调度中心OpenAPI完善,提供任务管理能力;封装Agent Skill并推送ClawHub; +- 6、【优化】调度日志优化:支持执行器维度查看调度日志;新增调度日志索引,提升查询效率; +(数据库新增索引脚本:``` create index I_jobgroup on xxl_job_log (job_group); ``` ) +- 7、【TODO】调度中心OpenAPI完善,提供任务管理能力;封装Agent Skill并推送ClawHub; ### TODO LIST diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java index 11b31029..19988321 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/controller/biz/JobLogController.java @@ -62,6 +62,7 @@ public class JobLogController { @RequestParam(value = "jobGroup", required = false, defaultValue = "0") Integer jobGroup, @RequestParam(value = "jobId", required = false, defaultValue = "0") Integer jobId) { + // 1、init JobGroupList // find all jobGroup List jobGroupListTotal = xxlJobGroupMapper.findAll(); @@ -70,44 +71,31 @@ public class JobLogController { if (CollectionTool.isEmpty(jobGroupList)) { throw new XxlJobException(I18nUtil.getString("jobgroup_empty")); } + List jobGroupIds = jobGroupList.stream().map(XxlJobGroup::getId).toList(); - // parse jobGroup + // 2、check jobId if (jobId > 0) { - // assign jobId (+ jobGroup) + // valid jobId XxlJobInfo jobInfo = xxlJobInfoMapper.loadById(jobId); if (jobInfo == null) { - // jobId not exist, inteceptor throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid")); } + // valid jobGroup jobGroup = jobInfo.getJobGroup(); - } else if (jobGroup > 0) { - // assign jobGroup - Integer finalJobGroup = jobGroup; - if (CollectionTool.isEmpty(jobGroupListTotal.stream().filter(item -> item.getId() == finalJobGroup).toList())) { - // jobGroup not exist, use first - jobGroup = jobGroupList.get(0).getId(); - } - jobId = 0; - } else { - // default first valid jobGroup - jobGroup = jobGroupList.get(0).getId(); - jobId = 0; } - /*// valid permission - JobGroupPermissionUtil.validJobGroupPermission(request, jobGroup);*/ + // 3、init jobGroup, default first 1 + if (!jobGroupIds.contains(jobGroup)) { + jobGroup = jobGroupList.get(0).getId(); + } - // find jobList + // 4、init jobInfoList List jobInfoList = xxlJobInfoMapper.getJobsByGroup(jobGroup); + List jobIds = jobInfoList.stream().map(XxlJobInfo::getId).toList(); - // parse jobId - if (CollectionTool.isEmpty(jobInfoList)) { + // 5、init JobId, default 0 + if (!jobIds.contains(jobId)) { jobId = 0; - } else { - if (!jobInfoList.stream().map(XxlJobInfo::getId).toList().contains(jobId)) { - // jobId not exist, use first - jobId = jobInfoList.get(0).getId(); - } } // write @@ -133,9 +121,9 @@ public class JobLogController { JobGroupPermissionUtil.validJobGroupPermission(request, jobGroup); // valid jobId - if (jobId < 1) { + /*if (jobId < 1) { return Response.ofFail(I18nUtil.getString("system_please_choose") + I18nUtil.getString("jobinfo_job")); - } + }*/ // parse param Date triggerTimeStart = null; diff --git a/xxl-job-admin/src/main/resources/mapper/XxlJobLogMapper.xml b/xxl-job-admin/src/main/resources/mapper/XxlJobLogMapper.xml index e58a7ba7..ca19534e 100644 --- a/xxl-job-admin/src/main/resources/mapper/XxlJobLogMapper.xml +++ b/xxl-job-admin/src/main/resources/mapper/XxlJobLogMapper.xml @@ -48,7 +48,7 @@ SELECT FROM xxl_job_log AS t - + AND t.job_group = #{jobGroup} @@ -82,7 +82,7 @@ SELECT count(1) FROM xxl_job_log AS t - + AND t.job_group = #{jobGroup} diff --git a/xxl-job-admin/src/main/resources/templates/biz/log.list.ftl b/xxl-job-admin/src/main/resources/templates/biz/log.list.ftl index 43458f77..9a6ec166 100644 --- a/xxl-job-admin/src/main/resources/templates/biz/log.list.ftl +++ b/xxl-job-admin/src/main/resources/templates/biz/log.list.ftl @@ -37,12 +37,11 @@
${I18n.jobinfo_job}