定时器增加长期生效选项,长期生效只有生效时间【开始时间】,无失效时间【结束时间】。
This commit is contained in:
@@ -191,6 +191,9 @@ public class ScheduleCfgJob implements Job {
|
||||
String mode = cfg.getUserRegion1().toUpperCase();//定时任务运行模式:一次,每天,每周,每月
|
||||
List<Trigger> triList = null;
|
||||
switch (mode) {
|
||||
case "ALWAYS"://单次运行,但只创建单次生效触发器
|
||||
triList = createSimpleTrigger(cfg);
|
||||
break;
|
||||
case "SINGLE"://单次运行
|
||||
triList = createSimpleTrigger(cfg);
|
||||
break;
|
||||
@@ -254,32 +257,42 @@ public class ScheduleCfgJob implements Job {
|
||||
Integer compileId = cfg.getCompileId();
|
||||
String cronValid = cfg.getCronValid();
|
||||
String cronInvalid = cfg.getCronInvalid();
|
||||
Date validDate = DateUtil.convertStringToDate(cronValid, Constants.COMMON_DATE_FORMAT);
|
||||
Date invalidDate = DateUtil.convertStringToDate(cronInvalid, Constants.COMMON_DATE_FORMAT);
|
||||
Date validDate = null;
|
||||
Date invalidDate = null;
|
||||
if(StringUtils.isNotBlank(cronValid)){
|
||||
validDate = DateUtil.convertStringToDate(cronValid, Constants.COMMON_DATE_FORMAT);
|
||||
}
|
||||
if(StringUtils.isNotBlank(cronInvalid)){
|
||||
invalidDate = DateUtil.convertStringToDate(cronInvalid, Constants.COMMON_DATE_FORMAT);
|
||||
}
|
||||
JobDataMap dataMap = new JobDataMap();
|
||||
dataMap.put("isValid", true);
|
||||
dataMap.put("cfg", cfg);
|
||||
String triName = VALID_KEY + cfg.getUserRegion1() + "_" + cronValid;
|
||||
Trigger trigger = TriggerBuilder.newTrigger()
|
||||
.withIdentity(createTiggerKey(triName, STATUS_GROUP+compileId))
|
||||
.withSchedule(SimpleScheduleBuilder.simpleSchedule())
|
||||
.usingJobData(dataMap)
|
||||
.forJob(STATUS_JOBDETAIL)
|
||||
.startAt(validDate)
|
||||
.build();
|
||||
triList.add(trigger);
|
||||
dataMap = new JobDataMap();
|
||||
dataMap.put("isValid", false);
|
||||
dataMap.put("cfg", cfg);
|
||||
triName = INVALID_KEY + cfg.getUserRegion1() + "_" + cronInvalid;
|
||||
trigger = TriggerBuilder.newTrigger()
|
||||
.withIdentity(createTiggerKey(triName, STATUS_GROUP+compileId))
|
||||
.withSchedule(SimpleScheduleBuilder.simpleSchedule())
|
||||
.usingJobData(dataMap)
|
||||
.forJob(STATUS_JOBDETAIL)
|
||||
.startAt(invalidDate)
|
||||
.build();
|
||||
triList.add(trigger);
|
||||
if(validDate!=null){//生效时间如果不为空,则创建定时生效触发器
|
||||
dataMap.put("isValid", true);
|
||||
dataMap.put("cfg", cfg);
|
||||
String triName = VALID_KEY + cfg.getUserRegion1() + "_" + cronValid;
|
||||
Trigger trigger = TriggerBuilder.newTrigger()
|
||||
.withIdentity(createTiggerKey(triName, STATUS_GROUP+compileId))
|
||||
.withSchedule(SimpleScheduleBuilder.simpleSchedule())
|
||||
.usingJobData(dataMap)
|
||||
.forJob(STATUS_JOBDETAIL)
|
||||
.startAt(validDate)
|
||||
.build();
|
||||
triList.add(trigger);
|
||||
}
|
||||
if(invalidDate!=null){//失效时间如果不为空,则创建定时失效触发器
|
||||
dataMap = new JobDataMap();
|
||||
dataMap.put("isValid", false);
|
||||
dataMap.put("cfg", cfg);
|
||||
String triName = INVALID_KEY + cfg.getUserRegion1() + "_" + cronInvalid;
|
||||
Trigger trigger = TriggerBuilder.newTrigger()
|
||||
.withIdentity(createTiggerKey(triName, STATUS_GROUP+compileId))
|
||||
.withSchedule(SimpleScheduleBuilder.simpleSchedule())
|
||||
.usingJobData(dataMap)
|
||||
.forJob(STATUS_JOBDETAIL)
|
||||
.startAt(invalidDate)
|
||||
.build();
|
||||
triList.add(trigger);
|
||||
}
|
||||
return triList;
|
||||
}
|
||||
|
||||
|
||||
@@ -1497,3 +1497,4 @@ validate_error=Unexpected error occurred while validating
|
||||
is_schduler=Scheduler
|
||||
v4_num=IPv4 Number
|
||||
v6_num=IPv6 Number
|
||||
always=Permanent
|
||||
@@ -1502,3 +1502,4 @@ is_schduler=Scheduler
|
||||
validate_error=Unexpected error occurred while validating
|
||||
v4_num=IPv4 Number
|
||||
v6_num=IPv6 Number
|
||||
always=\u041F\u043E\u0441\u0442\u043E\u044F\u043D\u043D\u043E
|
||||
@@ -1493,4 +1493,5 @@ everyWeek=\u6BCF\u5468
|
||||
everyMonth=\u6BCF\u6708
|
||||
validate_error=\u9A8C\u8BC1\u65F6\u53D1\u751F\u610F\u5916\u9519\u8BEF
|
||||
v4_num=IPv4 Number
|
||||
v6_num=IPv6 Number
|
||||
v6_num=IPv6 Number
|
||||
always=\u957F\u671F
|
||||
@@ -5,7 +5,10 @@
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.detail{
|
||||
border-left: 2px solid #999;
|
||||
/* border-left: 1px solid #999; */
|
||||
}
|
||||
.mode{
|
||||
border-right: 1px solid #999;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -95,7 +98,12 @@
|
||||
<div class="col-md-1 mode"><!-- 一次,每天,每周,每月选择 -->
|
||||
<div class="form-group">
|
||||
<label class="radio-inline">
|
||||
<input id="single" type="radio" class="required every" name="schedule.userRegion1" value="single" checked="checked" <c:if test="${_cfg.schedule.userRegion1 == 'single' }">checked="checked"</c:if>><spring:message code="single"/>
|
||||
<input id="always" type="radio" class="required every" name="schedule.userRegion1" value="always" checked="checked" <c:if test="${_cfg.schedule.userRegion1 == 'always' }">checked="checked"</c:if>><spring:message code="always"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="radio-inline">
|
||||
<input id="single" type="radio" class="required every" name="schedule.userRegion1" value="single" <c:if test="${_cfg.schedule.userRegion1 == 'single' }">checked="checked"</c:if>><spring:message code="single"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -116,7 +124,24 @@
|
||||
</div>
|
||||
<div class="col-md-9 detail">
|
||||
<!-- 一次执行 -->
|
||||
<div class="single">
|
||||
<div class="always">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-2"><spring:message code="startTime"/></label>
|
||||
<div class="col-md-4">
|
||||
<input name="schedule.cronValid" id="alwaysValid" type="text" class="form-control Wdate required" readonly="readonly" value="${_cfg.schedule.cronValid }" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'%y-%M-%d %H:{%m+2}:%s'});"/>
|
||||
</div>
|
||||
<div for="schedule.cronValid"></div>
|
||||
</div>
|
||||
<%-- <div class="form-group ">
|
||||
<label class="control-label col-md-2"><spring:message code="endTime"/></label>
|
||||
<div class="col-md-4">
|
||||
<input name="schedule.cronInvalid" id="singleInvalid" type="text" class="form-control Wdate required" readonly="readonly" value="${_cfg.schedule.cronInvalid }" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'singleValid\')}'});"/>
|
||||
</div>
|
||||
<div for="schedule.cronInvalid"></div>
|
||||
</div> --%>
|
||||
</div>
|
||||
<!-- 一次执行 -->
|
||||
<div class="single hidden">
|
||||
<div class="form-group ">
|
||||
<label class="control-label col-md-2"><spring:message code="startTime"/></label>
|
||||
<div class="col-md-4">
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
function init(){
|
||||
//初始化 mode 模式,一次,每天,每周,每月
|
||||
$("div.cronContain ").each(function(i,n){
|
||||
$("div.cronContain_${index } ").each(function(i,n){
|
||||
var $this = $(this);
|
||||
var mode = $this.find("input.every:checked").val();
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
$this.find(".detail > div").not("."+mode).find("select").val("");
|
||||
|
||||
$this.find("input").attr("disabled","disabled").attr("name",function(){
|
||||
return $(this).attr("name") + i;
|
||||
return $(this).attr("name") + ${index };
|
||||
});
|
||||
$this.find("select").attr("disabled","disabled").attr("name",function(){
|
||||
return $(this).attr("name") + i;
|
||||
return $(this).attr("name") + ${index };
|
||||
});
|
||||
|
||||
$this.find("input[type='radio']:not(:checked)").closest(".form-group").remove();
|
||||
@@ -50,11 +50,16 @@
|
||||
|
||||
</script>
|
||||
|
||||
<div id="cron" class=' cronContain row <c:if test="${empty _cfg.schedule }">hidden</c:if>' >
|
||||
<div id="cron" class=' cronContain_${index } row <c:if test="${empty _cfg.schedule }">hidden</c:if>' >
|
||||
<div class="col-md-1 mode"><!-- 一次,每天,每周,每月选择 -->
|
||||
<div class="form-group">
|
||||
<label class="radio-inline">
|
||||
<input id="single" type="radio" class="required every" name="schedule.userRegion1" value="single" checked="checked" <c:if test="${_cfg.schedule.userRegion1 == 'single' }">checked="checked"</c:if>><spring:message code="single"/>
|
||||
<input id="always" type="radio" class="required every" name="schedule.userRegion1" value="always" checked="checked" <c:if test="${_cfg.schedule.userRegion1 == 'always' }">checked="checked"</c:if>><spring:message code="always"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="radio-inline">
|
||||
<input id="single" type="radio" class="required every" name="schedule.userRegion1" value="single" <c:if test="${_cfg.schedule.userRegion1 == 'single' }">checked="checked"</c:if>><spring:message code="single"/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -74,8 +79,23 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-9 detail">
|
||||
<!-- 一次执行,长期生效 -->
|
||||
<div class="always">
|
||||
<div class="form-group row">
|
||||
<label class="control-label col-md-1"><spring:message code="startTime"/></label>
|
||||
<div class="col-md-4">
|
||||
<input name="schedule.cronValid" type="text" class="form-control Wdate required" readonly="readonly" value="${_cfg.schedule.cronValid }" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div>
|
||||
<%-- <div class="form-group row">
|
||||
<label class="control-label col-md-1"><spring:message code="endTime"/></label>
|
||||
<div class="col-md-4">
|
||||
<input name="schedule.cronInvalid" type="text" class="form-control Wdate required" readonly="readonly" value="${_cfg.schedule.cronInvalid }" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
|
||||
</div>
|
||||
</div> --%>
|
||||
</div>
|
||||
<!-- 一次执行 -->
|
||||
<div class="single">
|
||||
<div class="single hidden">
|
||||
<div class="form-group row">
|
||||
<label class="control-label col-md-1"><spring:message code="startTime"/></label>
|
||||
<div class="col-md-4">
|
||||
|
||||
Reference in New Issue
Block a user