瀏覽代碼

调度中心Cron前端组件优化,解决week配置与后端兼容性问题(ISSUE-2220)。

xuxueli 11 月之前
父節點
當前提交
f0d3645888

+ 3 - 2
doc/XXL-JOB官方文档.md

@@ -2455,8 +2455,9 @@ public void execute() {
 
 ### 7.38 版本 v3.0.1 Release Notes[规划中]
 - 1、【修复】任务操作逻辑优化,修复边界情况下逻辑中断问题(ISSUE-2081)。
-- 2、[规划中]登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险;
-- 3、[规划中]组件扫描改为BeanPostProcessor方式,避免小概率情况下提前初始化;底层组件移除单例写法,汇总factory统一管理;
+- 2、【修复】调度中心Cron前端组件优化,解决week配置与后端兼容性问题(ISSUE-2220)。
+- 3、[规划中]登陆态Token生成逻辑优化,混淆登陆时间属性,降低token泄漏风险;
+- 4、[规划中]组件扫描改为BeanPostProcessor方式,避免小概率情况下提前初始化;底层组件移除单例写法,汇总factory统一管理;
 
 ### TODO LIST
 - 1、调度隔离:调度中心针对不同执行器,各自维护不同的调度和远程触发组件。

文件差異過大導致無法顯示
+ 248 - 306
xxl-job-admin/src/main/java/com/xxl/job/admin/core/cron/CronExpression.java


+ 9 - 6
xxl-job-admin/src/main/resources/static/plugins/cronGen/cronGen.js

@@ -258,24 +258,27 @@
 
             var weekly3 = $("<div/>",{"class":"line"});
             $("<input/>",{type : "radio", value : "3", name : "week"}).appendTo(weekly3);
-            $(weekly3).append("周期 从星期");
+            $(weekly3).append("周期 每周第");
             $("<input/>",{type : "text", id : "weekStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
-            $(weekly3).append("-");
+            $(weekly3).append("-");
             $("<input/>",{type : "text", id : "weekEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
+            $(weekly3).append("天");
             $(weekly3).appendTo(weeklyTab);
 
             var weekly4 = $("<div/>",{"class":"line"});
             $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
-            $(weekly4).append("第");
+            $(weekly4).append("第");
             $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
-            $(weekly4).append("周的星期");
+            $(weekly4).append("天开始,间隔");
             $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
+            $(weekly4).append("天执行一次");
             $(weekly4).appendTo(weeklyTab);
 
             var weekly5 = $("<div/>",{"class":"line"});
             $("<input/>",{type : "radio", value : "5", name : "week"}).appendTo(weekly5);
-            $(weekly5).append("本月最后一个星期");
+            $(weekly5).append("本月最后一周的第");
             $("<input/>",{type : "text", id : "weekStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly5);
+            $(weekly5).append("天");
             $(weekly5).appendTo(weeklyTab);
 
             var weekly6 = $("<div/>",{"class":"line"});
@@ -283,7 +286,7 @@
             $(weekly6).append("指定");
             $(weekly6).appendTo(weeklyTab);
 
-            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">1<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">2<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">3<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">4<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">5<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">6<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">7</div>');
+            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">周日<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">周一<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">周二<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">周三<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">周四<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">周五<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">周六</div>');
 
             $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
             $(weeklyTab).appendTo(tabContent);

+ 2 - 2
xxl-job-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js

@@ -268,7 +268,7 @@
             $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
             $(weekly4).append("The");
             $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
-            $(weekly4).append("th week, and day ");
+            $(weekly4).append("th week, once every ");
             $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
             $(weekly4).appendTo(weeklyTab);
 
@@ -283,7 +283,7 @@
             $(weekly6).append("specify");
             $(weekly6).appendTo(weeklyTab);
 
-            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">1<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">2<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">3<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">4<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">5<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">6<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">7</div>');
+            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">SUN<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">MON<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">TUE<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">WED<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">THU<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">FRI<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">SAT</div>');
 
             $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
             $(weeklyTab).appendTo(tabContent);

+ 23 - 0
xxl-job-admin/src/test/java/com/xxl/job/admin/core/util/CronExpressionTest.java

@@ -0,0 +1,23 @@
+package com.xxl.job.admin.core.util;
+
+import com.xxl.job.admin.core.cron.CronExpression;
+import com.xxl.job.core.util.DateUtil;
+import org.junit.jupiter.api.Test;
+
+import java.text.ParseException;
+import java.util.Date;
+
+public class CronExpressionTest {
+
+    @Test
+    public void shouldWriteValueAsString() throws ParseException {
+        CronExpression cronExpression = new CronExpression("0 0 0 ? * 1");
+        Date lastTriggerTime = new Date();
+        for (int i = 0; i < 5; i++) {
+            Date nextTriggerTime = cronExpression.getNextValidTimeAfter(lastTriggerTime);
+            System.out.println(DateUtil.formatDateTime(nextTriggerTime));
+
+            lastTriggerTime = nextTriggerTime;
+        }
+    }
+}

部分文件因文件數量過多而無法顯示