在定時器的類上添加注解:
@Component
@EnableAsync
@EnableScheduling
一、普通的定時器:
每天15:10執行的定時器
@Scheduled(cron="0 10 15 * * ?") public void first() throws InterruptedException { System.out.println("第一個定時任務開始 : " + LocalDateTime.now().toLocalTime() + "\r\n線程 : " + Thread.currentThread().getName()); System.out.println(); Thread.sleep(1000 * 10); }
二、多線程定時器:
@Async @Scheduled(fixedDelay = 2000) public void second() { System.out.println("第二個定時任務開始 : " + LocalDateTime.now().toLocalTime() + "\r\n線程 : " + 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
