refactor(scheduler):重构调度器枚举包结构并优化代码

- 将 MisfireStrategyEnum 和 ScheduleTypeEnum 移至 enums 包- 更新所有相关导入路径
- 使用 CollectionTool 和 MapTool优化集合判断- 替换字符串工具方法为 StringTool 工具类- 添加日志异常堆栈信息输出-为 ExecutorRouteStrategyEnum 添加方法注释- 将 logger 声明为 final 类型
pull/72/head
xuxueli 11 months ago
parent ec7e9d52ad
commit 23779284a6

@ -5,8 +5,8 @@ import com.xxl.job.admin.model.XxlJobGroup;
import com.xxl.job.admin.model.XxlJobInfo; import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.scheduler.exception.XxlJobException; import com.xxl.job.admin.scheduler.exception.XxlJobException;
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum; import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum; import com.xxl.job.admin.scheduler.enums.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum; import com.xxl.job.admin.scheduler.enums.ScheduleTypeEnum;
import com.xxl.job.admin.scheduler.thread.JobScheduleHelper; import com.xxl.job.admin.scheduler.thread.JobScheduleHelper;
import com.xxl.job.admin.service.XxlJobService; import com.xxl.job.admin.service.XxlJobService;
import com.xxl.job.admin.util.I18nUtil; import com.xxl.job.admin.util.I18nUtil;

@ -2,6 +2,8 @@ package com.xxl.job.admin.scheduler.alarm;
import com.xxl.job.admin.model.XxlJobInfo; import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.model.XxlJobLog; import com.xxl.job.admin.model.XxlJobLog;
import com.xxl.tool.core.CollectionTool;
import com.xxl.tool.core.MapTool;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
@ -16,7 +18,7 @@ import java.util.Map;
@Component @Component
public class JobAlarmer implements ApplicationContextAware, InitializingBean { public class JobAlarmer implements ApplicationContextAware, InitializingBean {
private static Logger logger = LoggerFactory.getLogger(JobAlarmer.class); private static final Logger logger = LoggerFactory.getLogger(JobAlarmer.class);
private ApplicationContext applicationContext; private ApplicationContext applicationContext;
private List<JobAlarm> jobAlarmList; private List<JobAlarm> jobAlarmList;
@ -29,22 +31,18 @@ public class JobAlarmer implements ApplicationContextAware, InitializingBean {
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
Map<String, JobAlarm> serviceBeanMap = applicationContext.getBeansOfType(JobAlarm.class); Map<String, JobAlarm> serviceBeanMap = applicationContext.getBeansOfType(JobAlarm.class);
if (serviceBeanMap != null && serviceBeanMap.size() > 0) { if (MapTool.isNotEmpty(serviceBeanMap)) {
jobAlarmList = new ArrayList<JobAlarm>(serviceBeanMap.values()); jobAlarmList = new ArrayList<>(serviceBeanMap.values());
} }
} }
/** /**
* job alarm * job alarm
*
* @param info
* @param jobLog
* @return
*/ */
public boolean alarm(XxlJobInfo info, XxlJobLog jobLog) { public boolean alarm(XxlJobInfo info, XxlJobLog jobLog) {
boolean result = false; boolean result = false;
if (jobAlarmList!=null && jobAlarmList.size()>0) { if (CollectionTool.isNotEmpty(jobAlarmList)) {
result = true; // success means all-success result = true; // success means all-success
for (JobAlarm alarm: jobAlarmList) { for (JobAlarm alarm: jobAlarmList) {
boolean resultItem = false; boolean resultItem = false;

@ -1,4 +1,4 @@
package com.xxl.job.admin.scheduler.scheduler; package com.xxl.job.admin.scheduler.enums;
import com.xxl.job.admin.util.I18nUtil; import com.xxl.job.admin.util.I18nUtil;

@ -1,4 +1,4 @@
package com.xxl.job.admin.scheduler.scheduler; package com.xxl.job.admin.scheduler.enums;
import com.xxl.job.admin.util.I18nUtil; import com.xxl.job.admin.util.I18nUtil;

@ -34,6 +34,9 @@ public enum ExecutorRouteStrategyEnum {
return router; return router;
} }
/**
* match router
*/
public static ExecutorRouteStrategyEnum match(String name, ExecutorRouteStrategyEnum defaultItem){ public static ExecutorRouteStrategyEnum match(String name, ExecutorRouteStrategyEnum defaultItem){
if (name != null) { if (name != null) {
for (ExecutorRouteStrategyEnum item: ExecutorRouteStrategyEnum.values()) { for (ExecutorRouteStrategyEnum item: ExecutorRouteStrategyEnum.values()) {

@ -73,7 +73,7 @@ public class JobFailMonitorHelper {
} catch (Throwable e) { } catch (Throwable e) {
if (!toStop) { if (!toStop) {
logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}", e); logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}", e.getMessage(), e);
} }
} }

@ -3,8 +3,8 @@ package com.xxl.job.admin.scheduler.thread;
import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap; import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap;
import com.xxl.job.admin.scheduler.cron.CronExpression; import com.xxl.job.admin.scheduler.cron.CronExpression;
import com.xxl.job.admin.model.XxlJobInfo; import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum; import com.xxl.job.admin.scheduler.enums.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum; import com.xxl.job.admin.scheduler.enums.ScheduleTypeEnum;
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum; import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

@ -12,6 +12,7 @@ import com.xxl.job.core.biz.model.TriggerParam;
import com.xxl.job.core.enums.ExecutorBlockStrategyEnum; import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
import com.xxl.job.core.util.IpUtil; import com.xxl.job.core.util.IpUtil;
import com.xxl.job.core.util.ThrowableUtil; import com.xxl.job.core.util.ThrowableUtil;
import com.xxl.tool.core.StringTool;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -60,7 +61,7 @@ public class XxlJobTrigger {
XxlJobGroup group = XxlJobAdminBootstrap.getInstance().getXxlJobGroupMapper().load(jobInfo.getJobGroup()); XxlJobGroup group = XxlJobAdminBootstrap.getInstance().getXxlJobGroupMapper().load(jobInfo.getJobGroup());
// cover addressList // cover addressList
if (addressList!=null && addressList.trim().length()>0) { if (StringTool.isNotBlank(addressList)) {
group.setAddressType(1); group.setAddressType(1);
group.setAddressList(addressList.trim()); group.setAddressList(addressList.trim());
} }
@ -69,7 +70,7 @@ public class XxlJobTrigger {
int[] shardingParam = null; int[] shardingParam = null;
if (executorShardingParam!=null){ if (executorShardingParam!=null){
String[] shardingArr = executorShardingParam.split("/"); String[] shardingArr = executorShardingParam.split("/");
if (shardingArr.length==2 && isNumeric(shardingArr[0]) && isNumeric(shardingArr[1])) { if (shardingArr.length==2 && StringTool.isNumeric(shardingArr[0]) && StringTool.isNumeric(shardingArr[1])) {
shardingParam = new int[2]; shardingParam = new int[2];
shardingParam[0] = Integer.valueOf(shardingArr[0]); shardingParam[0] = Integer.valueOf(shardingArr[0]);
shardingParam[1] = Integer.valueOf(shardingArr[1]); shardingParam[1] = Integer.valueOf(shardingArr[1]);

@ -6,8 +6,8 @@ import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.model.XxlJobLogReport; import com.xxl.job.admin.model.XxlJobLogReport;
import com.xxl.job.admin.scheduler.cron.CronExpression; import com.xxl.job.admin.scheduler.cron.CronExpression;
import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum; import com.xxl.job.admin.scheduler.route.ExecutorRouteStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum; import com.xxl.job.admin.scheduler.enums.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum; import com.xxl.job.admin.scheduler.enums.ScheduleTypeEnum;
import com.xxl.job.admin.scheduler.thread.JobScheduleHelper; import com.xxl.job.admin.scheduler.thread.JobScheduleHelper;
import com.xxl.job.admin.scheduler.thread.JobTriggerPoolHelper; import com.xxl.job.admin.scheduler.thread.JobTriggerPoolHelper;
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum; import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;

@ -1,8 +1,8 @@
package com.xxl.job.admin.mapper; package com.xxl.job.admin.mapper;
import com.xxl.job.admin.model.XxlJobInfo; import com.xxl.job.admin.model.XxlJobInfo;
import com.xxl.job.admin.scheduler.scheduler.MisfireStrategyEnum; import com.xxl.job.admin.scheduler.enums.MisfireStrategyEnum;
import com.xxl.job.admin.scheduler.scheduler.ScheduleTypeEnum; import com.xxl.job.admin.scheduler.enums.ScheduleTypeEnum;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.slf4j.Logger; import org.slf4j.Logger;

Loading…
Cancel
Save