From d24e4ccd6073cc75305e1d3b9c29bc8db7437e7a Mon Sep 17 00:00:00 2001 From: xuxueli <931591021@qq.com> Date: Sun, 29 Mar 2026 18:56:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E8=B0=83?= =?UTF-8?q?=E5=BA=A6=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96=EF=BC=9A=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=89=A7=E8=A1=8C=E5=99=A8=E7=BB=B4=E5=BA=A6=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E8=B0=83=E5=BA=A6=E6=97=A5=E5=BF=97=EF=BC=9B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=B0=83=E5=BA=A6=E6=97=A5=E5=BF=97=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E5=8D=87=E6=9F=A5=E8=AF=A2=E6=95=88=E7=8E=87?= =?UTF-8?q?=EF=BC=9B=20=EF=BC=88=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=B4=A2=E5=BC=95=E8=84=9A=E6=9C=AC=EF=BC=9A```=20cre?= =?UTF-8?q?ate=20index=20I=5Fjobgroup=20on=20xxl=5Fjob=5Flog=20(job=5Fgrou?= =?UTF-8?q?p);=20```=20=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 4 +- .../controller/biz/JobLogController.java | 42 +++++++------------ .../main/resources/mapper/XxlJobLogMapper.xml | 4 +- .../main/resources/templates/biz/log.list.ftl | 3 +- 4 files changed, 21 insertions(+), 32 deletions(-) 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}