parent
3521172a47
commit
492d720215
@ -1,39 +0,0 @@
|
|||||||
package com.xxl.job.admin.scheduler.enums;
|
|
||||||
|
|
||||||
import com.xxl.job.admin.util.I18nUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author xuxueli 2020-10-29 21:11:23
|
|
||||||
*/
|
|
||||||
public enum MisfireStrategyEnum {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* do nothing
|
|
||||||
*/
|
|
||||||
DO_NOTHING(I18nUtil.getString("misfire_strategy_do_nothing")),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* fire once now
|
|
||||||
*/
|
|
||||||
FIRE_ONCE_NOW(I18nUtil.getString("misfire_strategy_fire_once_now"));
|
|
||||||
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
MisfireStrategyEnum(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MisfireStrategyEnum match(String name, MisfireStrategyEnum defaultItem){
|
|
||||||
for (MisfireStrategyEnum item: MisfireStrategyEnum.values()) {
|
|
||||||
if (item.name().equals(name)) {
|
|
||||||
return item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return defaultItem;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.xxl.job.admin.scheduler.misfire;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Misfire Handler
|
||||||
|
*
|
||||||
|
* @author xuxueli 2020-10-29
|
||||||
|
*/
|
||||||
|
public abstract class MisfireHandler {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* misfire handle
|
||||||
|
*
|
||||||
|
* @param jobId jobId
|
||||||
|
*/
|
||||||
|
public abstract void handle(final int jobId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
package com.xxl.job.admin.scheduler.misfire;
|
||||||
|
|
||||||
|
import com.xxl.job.admin.scheduler.misfire.strategy.MisfireDoNothing;
|
||||||
|
import com.xxl.job.admin.scheduler.misfire.strategy.MisfireFireOnceNow;
|
||||||
|
import com.xxl.job.admin.util.I18nUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xuxueli 2020-10-29 21:11:23
|
||||||
|
*/
|
||||||
|
public enum MisfireStrategyEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* do nothing
|
||||||
|
*/
|
||||||
|
DO_NOTHING(I18nUtil.getString("misfire_strategy_do_nothing"), new MisfireDoNothing()),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fire once now
|
||||||
|
*/
|
||||||
|
FIRE_ONCE_NOW(I18nUtil.getString("misfire_strategy_fire_once_now"), new MisfireFireOnceNow());
|
||||||
|
|
||||||
|
private final String title;
|
||||||
|
private final MisfireHandler misfireHandler;
|
||||||
|
|
||||||
|
MisfireStrategyEnum(String title, MisfireHandler misfireHandler) {
|
||||||
|
this.title = title;
|
||||||
|
this.misfireHandler = misfireHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MisfireHandler getMisfireHandler() {
|
||||||
|
return misfireHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* match misfire strategy
|
||||||
|
*
|
||||||
|
* @param name name of misfire strategy
|
||||||
|
* @param defaultItem default misfire strategy
|
||||||
|
* @return misfire strategy
|
||||||
|
*/
|
||||||
|
public static MisfireStrategyEnum match(String name, MisfireStrategyEnum defaultItem){
|
||||||
|
for (MisfireStrategyEnum item: MisfireStrategyEnum.values()) {
|
||||||
|
if (item.name().equals(name)) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return defaultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.xxl.job.admin.scheduler.misfire.strategy;
|
||||||
|
|
||||||
|
import com.xxl.job.admin.scheduler.misfire.MisfireHandler;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class MisfireDoNothing extends MisfireHandler {
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(MisfireDoNothing.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(int jobId) {
|
||||||
|
logger.warn(">>>>>>>>>>> xxl-job, schedule MisfireDoNothing: jobId = " + jobId );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
package com.xxl.job.admin.scheduler.misfire.strategy;
|
||||||
|
|
||||||
|
import com.xxl.job.admin.scheduler.config.XxlJobAdminBootstrap;
|
||||||
|
import com.xxl.job.admin.scheduler.misfire.MisfireHandler;
|
||||||
|
import com.xxl.job.admin.scheduler.trigger.TriggerTypeEnum;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
public class MisfireFireOnceNow extends MisfireHandler {
|
||||||
|
protected static Logger logger = LoggerFactory.getLogger(MisfireFireOnceNow.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(int jobId) {
|
||||||
|
// FIRE_ONCE_NOW 》 trigger
|
||||||
|
XxlJobAdminBootstrap.getInstance().getJobTriggerPoolHelper().trigger(jobId, TriggerTypeEnum.MISFIRE, -1, null, null, null);
|
||||||
|
logger.warn(">>>>>>>>>>> xxl-job, schedule MisfireFireOnceNow: jobId = " + jobId );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in new issue