首页 > 技术文章 > Spring Boot 创建动态定时任务

personsiglewine 2019-11-12 10:50 原文

1,日期格式转换

//定时任务格式转换
public static String convertCronTime(Date jobDate){
//https://blog.csdn.net/qq_39706128/article/details/80001500
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(jobDate);

String[] times = time.split(" ");
String[] timesF = times[1].split(":");
String[] timesT = times[0].split("-");

String jobTime = timesF[2]+" "+timesF[1]+" "+timesF[0]+" "+timesT[2]+" "+
timesT[1]+"/1"+" ? "+timesT[0];

return jobTime;
}
2,创建类继承Runnable接口,执行定时任务的业务详情-异步
public class ConfigTask implements Runnable{

private static final Logger logger = Logger.getLogger(ConfigTask.class);

@Override
public void run() {
logger.info("ConfigTask run()...");
}
}
3,创建定时任务
@Autowired
private ThreadPoolTaskScheduler threadPoolTaskScheduler;

@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
return new ThreadPoolTaskScheduler();
}
/***
* 创建定时任务
*/
public void createCronJob(Date date,Runnable task){
threadPoolTaskScheduler.schedule(task,
new CronTrigger(CommonUtil.convertCronTime(date)));
}

推荐阅读