在定时器的类上添加注解:
@Component
@EnableAsync
@EnableScheduling
一、普通的定时器:
每天15:10执行的定时器
@Scheduled(cron="0 10 15 * * ?") public void first() throws InterruptedException { System.out.println("第一个定时任务开始 : " + LocalDateTime.now().toLocalTime() + " 线程 : " + Thread.currentThread().getName()); System.out.println(); Thread.sleep(1000 * 10); }
二、多线程定时器:
@Async @Scheduled(fixedDelay = 2000) public void second() { System.out.println("第二个定时任务开始 : " + LocalDateTime.now().toLocalTime() + " 线程 : " + Thread.currentThread().getName()); ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5); for (int i = 0; i < 10; i++) { scheduledThreadPool.schedule(new Runnable() { public void run() { System.out.println("delay 3 seconds==========================" + Thread.currentThread().getId() + Thread.currentThread().getName()); } }, 3, TimeUnit.SECONDS); } }
@Scheduled(cron=" ") 使用的cron表达式
推荐一个在线的cron表达式生成器 http://cron.qqe2.com/
cron表达式简单学习 : https://blog.csdn.net/fanrenxiang/article/details/80361582