重构调度服务注入方式

This commit is contained in:
xueli.xue 2016-03-12 14:36:57 +08:00
parent d81b0749a6
commit 0f0906eeaf
3 changed files with 24 additions and 16 deletions

View File

@ -8,8 +8,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.annotation.Resource;
import org.quartz.CronScheduleBuilder; import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger; import org.quartz.CronTrigger;
import org.quartz.Job; import org.quartz.Job;
@ -27,7 +25,10 @@ import org.quartz.impl.matchers.GroupMatcher;
import org.quartz.impl.triggers.CronTriggerImpl; import org.quartz.impl.triggers.CronTriggerImpl;
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.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import com.xxl.job.client.util.JacksonUtil; import com.xxl.job.client.util.JacksonUtil;
@ -39,32 +40,30 @@ import com.xxl.job.dao.IXxlJobLogDao;
* base quartz scheduler util * base quartz scheduler util
* @author xuxueli 2015-12-19 16:13:53 * @author xuxueli 2015-12-19 16:13:53
*/ */
public final class DynamicSchedulerUtil implements InitializingBean { public final class DynamicSchedulerUtil implements ApplicationContextAware, InitializingBean {
private static final Logger logger = LoggerFactory.getLogger(DynamicSchedulerUtil.class); private static final Logger logger = LoggerFactory.getLogger(DynamicSchedulerUtil.class);
// xxlJobLogDao
public static IXxlJobLogDao xxlJobLogDao;
@Resource
public void setXxlJobLogDao(IXxlJobLogDao xxlJobLogDao) {
DynamicSchedulerUtil.xxlJobLogDao = xxlJobLogDao;
}
// xxlJobInfoDao
public static IXxlJobInfoDao xxlJobInfoDao;
@Resource
public void setXxlJobInfoDao(IXxlJobInfoDao xxlJobInfoDao) {
DynamicSchedulerUtil.xxlJobInfoDao = xxlJobInfoDao;
}
// Scheduler // Scheduler
private static Scheduler scheduler; private static Scheduler scheduler;
public static void setScheduler(Scheduler scheduler) { public static void setScheduler(Scheduler scheduler) {
DynamicSchedulerUtil.scheduler = scheduler; DynamicSchedulerUtil.scheduler = scheduler;
} }
// xxlJobLogDaoxxlJobInfoDao
public static IXxlJobLogDao xxlJobLogDao;
public static IXxlJobInfoDao xxlJobInfoDao;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
DynamicSchedulerUtil.xxlJobLogDao = applicationContext.getBean(IXxlJobLogDao.class);
DynamicSchedulerUtil.xxlJobInfoDao = applicationContext.getBean(IXxlJobInfoDao.class);
}
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
Assert.notNull(scheduler, "quartz scheduler is null"); Assert.notNull(scheduler, "quartz scheduler is null");
logger.info(">>>>>>>>> init quartz scheduler success.[{}]", scheduler); logger.info(">>>>>>>>> init quartz scheduler success.[{}]", scheduler);
} }
// getJobKeys // getJobKeys
@ -266,4 +265,5 @@ public final class DynamicSchedulerUtil implements InitializingBean {
return result; return result;
} }
} }

View File

@ -6,6 +6,10 @@ import org.quartz.DisallowConcurrentExecution;
import com.xxl.job.service.job.LocalNomalJobBean; import com.xxl.job.service.job.LocalNomalJobBean;
/**
* demo job bean for no-concurrent
* @author xuxueli 2016-3-12 14:25:14
*/
@DisallowConcurrentExecution // 串行线程数要多配置几个否则不生效 @DisallowConcurrentExecution // 串行线程数要多配置几个否则不生效
public class DemoConcurrentJobBean extends LocalNomalJobBean { public class DemoConcurrentJobBean extends LocalNomalJobBean {

View File

@ -7,6 +7,10 @@ import org.slf4j.LoggerFactory;
import com.xxl.job.service.job.LocalNomalJobBean; import com.xxl.job.service.job.LocalNomalJobBean;
/**
* demo job bean for concurrent
* @author xuxueli 2016-3-12 14:25:57
*/
public class DemoNomalJobBean extends LocalNomalJobBean { public class DemoNomalJobBean extends LocalNomalJobBean {
private static Logger Logger = LoggerFactory.getLogger(DemoNomalJobBean.class); private static Logger Logger = LoggerFactory.getLogger(DemoNomalJobBean.class);