版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/inforstack/article/details/70244108
applicationContext.xml
<task:annotation-driven />
注解方式
package com.inforstack.eyesense.util.cache.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class TaskHxMessage {
public TaskHxMessage(){
System.out.println("TTTTTTTTTTTTT");
}
@Scheduled(cron = "0/1 * * * * ? ")
public void run() {
System.out.println("Test");
}
}
实现接口
package com.inforstack.eyesense.util.cache.task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import com.inforstack.eyesense.jpa.service.DictionaryService;
import com.inforstack.eyesense.jpa.service.IMMessageService;
import com.inforstack.eyesense.util.Constants;
@Configuration //声明
@EnableAsync //启动异步
@EnableScheduling //使用调度
public class ScheduleConfig implements SchedulingConfigurer {
@Autowired
private DictionaryService dictionaryService;
@Autowired
private IMMessageService imMessageService;
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
String cron = dictionaryService.getValue(Constants.CONFIGURATION_GROUP_SYSTEM, Constants.CONFIGURATION_KEY_HX_GET_DATE_CRON);
ThreadPoolTaskScheduler tpts = new ThreadPoolTaskScheduler();
tpts.initialize(); //一定要初始化,不然会抛异常
HxMessageRunnable hmr = new HxMessageRunnable(imMessageService, dictionaryService);
taskRegistrar.setTaskScheduler(tpts);
taskRegistrar.getScheduler().schedule(hmr, new CronTrigger(cron));
}
}