动态定时任务的简单实现

1.配置类
@Configuration
public class ThreadPoolTaskSchedulerConf {
    @Bean
    public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
        return new ThreadPoolTaskScheduler();
    }
}

2.具体逻辑类

public class ReconciliationTask implements Runnable{

    @Override
    public void run() {
        System.out.println(LocalDateTime.now());
    }
}

3.请求入口:传入cron表达式 如:0/1 * * * * ?

@RestController
public class TestController {

    @Autowired
    ThreadPoolTaskScheduler conf;

    ScheduledFuture future;

    @GetMapping("/test")
    public void test(String corn) {
        if (null != future) {
            //取消此任务
            future.cancel(true);
        }
        future=conf.schedule(new ReconciliationTask(), new CronTrigger(corn));
    }
}

结果:

发布了85 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/New_CJ/article/details/99682294