import org.ofbiz.entity.GenericDelegator;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import woxiang.task.JobQuartzTask;
import woxiang.util.ConfigCenterUtil;
import woxiang.util.SystemUtil;
private static final String JOB_GROUP = "JOB_MAIN";
private static final String TRIGGER_GROUP = "TRIGGER_MAIN";
private static int initCount = 0;
public static GenericDelegator delegator = null;
/**
* 定时器执行
*
* 1. 初始化次数,只初始化1次
* 2. 集群执行IP
* 3. 单机执行IP
*
* @author Alex
*/
public static void comm(GenericDelegator delegatorParam) {
delegator = delegatorParam;
String ip = SystemUtil.getServerLocalIp();
String time = ConfigCenterUtil.getKeyByKey("QUARTZ_LISTER"); //获取监听时间
// 1. 初始化次数,只初始化1次
if (initCount == 0) {
initCount = 1;
} else {
return;
}
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
try{
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.start();
//判断是否允许使用定时调度
String ipMuti = ConfigCenterUtil.getKeyByKey("SCHEDULE_IPS");
if(ipMuti.indexOf(ip) != -1){
//监听定时调度表
JobDetail JobQuartzTask = JobBuilder.newJob(JobQuartzTask.class).withIdentity("JobQuartzTask", JOB_GROUP).build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("JobQuartzTaskTrigger", TRIGGER_GROUP)
.startNow()
.withSchedule(CronScheduleBuilder.cronSchedule(time))
.build();
scheduler.scheduleJob(JobQuartzTask, trigger);
}
}catch (Exception e) {
e.printStackTrace();
}
}