需求
项目中需要按照执行时间启动指定时间间隔执行的定时任务,并在不需要时手动关闭。
在经过查找资料后发现ThreadPoolTaskScheduler是最适合的实现方式。
ThreadPoolTaskScheduler简介
包路径:
org.springframework.scheduling.concurrent
默认线程池大小:
private volatile int poolSize = 1;
主要方法:
schedule(Runnable task, Trigger trigger),在指定时间执行一次定时任务(动态创建指定表达式cron的定时任务)
schedule(Runnable task, Date startTime),在指定时间执行一次定时任务
scheduleAtFixedRate(Runnable task, Date startTime, long period),在指定时间执行定时任务,然后以指定间隔时间执行任务,间隔时间为前一次执行开始到下次任务开始时间
scheduleAtFixedRate(Runnable task, long period),以指定间隔时间执行任务,间隔时间为前一次执行开始到下次任务开始时间