项目实战
或许实现的方式跟之前的代码有点不一样的
1.定时任务的配置信息
@Configuration
public class ScheduleConfigration {
@Autowired
private ScheduleInfoAction scheduleInfoAction;
@Autowired
private ChannelSyncTask ChannelSyncTask;
/**
* 用于5分钟轮训检查cron修改(基本不需要修改)
* @return
*/
@Bean(name = "jobDetail")
public MethodInvokingJobDetailFactoryBean jobDetail(){
MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean = new MethodInvokingJobDetailFactoryBean();
methodInvokingJobDetailFactoryBean.setConcurrent(false);
methodInvokingJobDetailFactoryBean.setTargetObject(scheduleInfoAction);
methodInvokingJobDetailFactoryBean.setTargetMethod("reScheduleJob");
return methodInvokingJobDetailFactoryBean;
}
/**
* 用于5分钟轮训检查cron修改(基本不需要修改)
* @return
*/
@Bean(name = "cronTrigger")
public CronTriggerFactoryBean cronTrigger(){
CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();
cronTriggerFactoryBean.setJobDetail(jobDetail().getObject());
// 设置默认刷新cron
cronTriggerFactoryBean.setCronExpression(Properties.getString("refresh.default.cron"));
return cronTriggerFactoryBean;
}
/**
* dycChannel 任务,需要添加新的定时任务,需要重复配置JobDetail,CronTrigger
* @return
*/
@Bean(name = "channelSyncJobCronJobDetail")
public MethodInvokingJobDetailFactoryBean channelSyncJobCronJobDetail(){
MethodInvokingJobDetailFactoryBean methodInvokingJobDetailFactoryBean = new MethodInvokingJobDetailFactoryBean();
methodInvokingJobDetailFactoryBean.setConcurrent(false);
methodInvokingJobDetailFactoryBean.setTargetObject(channelSyncTask);
methodInvokingJobDetailFactoryBean.setTargetMethod("doTask");
return methodInvokingJobDetailFactoryBean;
}
@Bean(name = "channelSyncJobCronTrigger")
public CronTriggerFactoryBean channelSyncJobCronTrigger(){
CronTriggerFactoryBean cronTriggerFactoryBean = new C