|
@@ -8,6 +8,7 @@ import com.xxl.job.admin.core.model.XxlJobUser;
|
|
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
|
import com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum;
|
|
import com.xxl.job.admin.core.scheduler.MisfireStrategyEnum;
|
|
import com.xxl.job.admin.core.scheduler.MisfireStrategyEnum;
|
|
import com.xxl.job.admin.core.scheduler.ScheduleTypeEnum;
|
|
import com.xxl.job.admin.core.scheduler.ScheduleTypeEnum;
|
|
|
|
+import com.xxl.job.admin.core.thread.JobScheduleHelper;
|
|
import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
|
|
import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
|
|
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
|
import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
|
|
import com.xxl.job.admin.core.util.I18nUtil;
|
|
import com.xxl.job.admin.core.util.I18nUtil;
|
|
@@ -18,6 +19,8 @@ import com.xxl.job.core.biz.model.ReturnT;
|
|
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
|
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
|
|
import com.xxl.job.core.glue.GlueTypeEnum;
|
|
import com.xxl.job.core.glue.GlueTypeEnum;
|
|
import com.xxl.job.core.util.DateUtil;
|
|
import com.xxl.job.core.util.DateUtil;
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.ui.Model;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -36,6 +39,7 @@ import java.util.*;
|
|
@Controller
|
|
@Controller
|
|
@RequestMapping("/jobinfo")
|
|
@RequestMapping("/jobinfo")
|
|
public class JobInfoController {
|
|
public class JobInfoController {
|
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(JobInfoController.class);
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private XxlJobGroupDao xxlJobGroupDao;
|
|
private XxlJobGroupDao xxlJobGroupDao;
|
|
@@ -148,23 +152,29 @@ public class JobInfoController {
|
|
|
|
|
|
@RequestMapping("/nextTriggerTime")
|
|
@RequestMapping("/nextTriggerTime")
|
|
@ResponseBody
|
|
@ResponseBody
|
|
- public ReturnT<List<String>> nextTriggerTime(String cron) {
|
|
|
|
|
|
+ public ReturnT<List<String>> nextTriggerTime(String scheduleType, String scheduleConf) {
|
|
|
|
+
|
|
|
|
+ XxlJobInfo paramXxlJobInfo = new XxlJobInfo();
|
|
|
|
+ paramXxlJobInfo.setScheduleType(scheduleType);
|
|
|
|
+ paramXxlJobInfo.setScheduleConf(scheduleConf);
|
|
|
|
+
|
|
List<String> result = new ArrayList<>();
|
|
List<String> result = new ArrayList<>();
|
|
try {
|
|
try {
|
|
- CronExpression cronExpression = new CronExpression(cron);
|
|
|
|
Date lastTime = new Date();
|
|
Date lastTime = new Date();
|
|
for (int i = 0; i < 5; i++) {
|
|
for (int i = 0; i < 5; i++) {
|
|
- lastTime = cronExpression.getNextValidTimeAfter(lastTime);
|
|
|
|
|
|
+ lastTime = JobScheduleHelper.generateNextValidTime(paramXxlJobInfo, lastTime);
|
|
if (lastTime != null) {
|
|
if (lastTime != null) {
|
|
result.add(DateUtil.formatDateTime(lastTime));
|
|
result.add(DateUtil.formatDateTime(lastTime));
|
|
} else {
|
|
} else {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- } catch (ParseException e) {
|
|
|
|
- return new ReturnT<List<String>>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error(e.getMessage(), e);
|
|
|
|
+ return new ReturnT<List<String>>(ReturnT.FAIL_CODE, (I18nUtil.getString("schedule_type")+I18nUtil.getString("system_unvalid")) + e.getMessage());
|
|
}
|
|
}
|
|
return new ReturnT<List<String>>(result);
|
|
return new ReturnT<List<String>>(result);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|