1. 程式人生 > 其它 >Cron定時任務

Cron定時任務

1、SpringBoot自帶的2個任務排程:spring已經封裝好的我們可以拿來直接使用

  01、TaskScheduler 任務排程程式
  02、TaskExecutor 任務執行者

2、還有2個註解:


01、開啟定時功能的註解,加到啟動類上:以 Enable 開頭的都放在啟動類上

@EnableScheduling

 

02、什麼時候執行

@scheduled

 

3、Cron表示式

 


設定定時器:

@Service
public class ScheduledService {

/*
表示:秒 分 時 日 月 周幾
符號: ?也表示所有,一般只在月和日使用。
*表示每的意思,如每天、月等。
-表示範圍
/表示起始時間
,表示指定時間
L表示最後
#用於確定是每個月第幾個星期幾
30 * 20 29 3 ? 3月29日20點每分30秒 執行一次
30 0/5 10,18 * * ? 每天10點和18點,每隔5分鐘的30秒執行一次
0 15 10 ? * 1-6 每個月的週一到週六 10點15分執行一次
*/ //Scheduled是非同步的,到啟動類是開啟了就可以了 @Scheduled(cron = "30 * 20 29 3 ?") public void scheduled(){ System.out.println("定時器執行了~"); } }

 

 


開啟定時器:

@EnableScheduling//開啟定時功能註解
@SpringBootApplication
public class Springboot05TaskApplication {

public static void main(String[] args) {
SpringApplication.run(Springboot05TaskApplication.
class, args); } }

 

 

下面是一些定時器的表示式例子:

  (1)0/2 * * * * ?   表示每2秒 執行任務

  (1)0 0/2 * * * ?    表示每2分鐘 執行任務

  (1)0 0 2 1 * ?   表示在每月的1日的凌晨2點調整任務

  (2)0 15 10 ? * MON-FRI   表示週一到週五每天上午10:15執行作業

  (3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每個月的最後一個星期五上午10:15執行作

  (4)0 0 10,14,16 * * ?   每天上午10點,下午2點,4點 

  (5)0 0/30 9-17 * * ?   朝九晚五工作時間內每半小時 

  (6)0 0 12 ? * WED    表示每個星期三中午12點 

  (7)0 0 12 * * ?   每天中午12點觸發 

  (8)0 15 10 ? * *    每天上午10:15觸發 

  (9)0 15 10 * * ?     每天上午10:15觸發 

  (10)0 15 10 * * ?    每天上午10:15觸發 

  (11)0 15 10 * * ? 2005    2005年的每天上午10:15觸發 

  (12)0 * 14 * * ?     在每天下午2點到下午2:59期間的每1分鐘觸發 

  (13)0 0/5 14 * * ?    在每天下午2點到下午2:55期間的每5分鐘觸發 

  (14)0 0/5 14,18 * * ?     在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發 

  (15)0 0-5 14 * * ?    在每天下午2點到下午2:05期間的每1分鐘觸發 

  (16)0 10,44 14 ? 3 WED    每年三月的星期三的下午2:10和2:44觸發 

  (17)0 15 10 ? * MON-FRI    週一至週五的上午10:15觸發 

  (18)0 15 10 15 * ?    每月15日上午10:15觸發 

  (19)0 15 10 L * ?    每月最後一日的上午10:15觸發 

  (20)0 15 10 ? * 6L    每月的最後一個星期五上午10:15觸發 

  (21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最後一個星期五上午10:15觸發 

  (22)0 15 10 ? * 6#3   每月的第三個星期五上午10:15觸發