现状:Apollo上修改配置后,需要重启服务才能让定时的配置生效
期望:不重启服务,也能生效
@Autowired
private ThreadPoolTaskScheduler threadPoolTaskScheduler;
private ScheduledFuture<?> future;
@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
return new ThreadPoolTaskScheduler();
}
/**
* 停止定时任务
*/
private void stopCron() {
if (future != null) {
future.cancel(true);
}
log.info("stopCron()");
}
/**
* 手动刷新 定时任务配置
* @param cron
*/
@GetMapping("refreshCron")
public void refreshCron(String cron){
log.info("刷新的定时时间:"+cron);
if(StringUtils.isNotBlank(cron)){
// 先停止,在开启
stopCron();
future = threadPoolTaskScheduler.schedule(new Runnable() {
@Override
public void run() {
//定时执行的任务
}
}, new CronTrigger(cron));
}
}
版权声明:本文为weixin_43091333原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。