springboot定時任務以及corn表達式


## springboot的定時任務
### 兩步編碼實現定時任務。
- 開啟定時任務注解  :打開冰箱門 @enableScheduling
- 設置定時時間,corn表達式。 @scheduled
- corn表達式
 -- http://cron.qqe2.com
  corn表達式:空格區分組成部分
  秒     分    時     日         月      星期
  0-59   0-59  0-23  1-31       1-12     1-7 
  ,-*/   ,-*/  ,-*/  ,-*/?LWC   ,-*/     ,-*/?L C # 
  * corn通用表達式
  通用符號: ,-*? 
  ,標識枚舉值,例如在minutes域使用5,20.表示在時間的分鍾為5,20時觸發事件。
  -表示范圍,例如在minutes域中使用5-20,表示在時間的分鍾為5-20時每分鍾都觸發事件。
  \*表示匹配該區域的任意值,假如在minutes域使用*,表示時間分鍾數不做限制,每分鍾都觸發時間。
  /表示,起始時間開始觸發,然后每間隔固定的時間觸發一次。
  
  思考題:
  秒 分 時 日 月 周 年
  0  0  2  1  * ?  * 表達什么意思:
  每月的一號的凌晨兩點0分0秒。
  秒  分  時 日 月 周
  0 10,44 14 ?  3  WED:
  0秒 14點10分,14點44分3月的星期三。
  在每年的3月的星期三的14點10分0秒和14點44分0秒觸發事件。

  專用符號:
  ? 只能用在dayofmonth和dayofweek兩個域中使用。
  L 表示最后,
  W 表示有效的工作日,只能出現dayofmonth域。系統將在離指定日期的最近的有效工作日觸發事件。
  \#  用於確定每個月第幾個星期幾,只能出現在dayofweek域,例如在 4#2,表示某月的第二個星期三。

  專有符號:
   專有符號除?后,在spring定時任務中都不支持。

   秒 分     時    日  月  周
   0  0/30  9-22   *   *  ?
   表示:每年每月每日的9點到22點每30分鍾觸發事件,對星期幾不設定。

   0  0    9-22/4 * * ?


# 默認單線程的定時任務,如果事件持續事件較長,竟會將后續任務拖延,導致丟失任務。

# spring使用異步多線程實現,兩步
- 1.打開同步注解。@EnableAsync
- 2.設置異步執行。@Async

# 總結:
- 1.通過@enableScheduling注解開啟定時任務
- 2.通過@Scheduled設置定時任務
- corn表達式
  # # 通用表達式:
  - ,-*/
  # # 專用表法式:
  -  ?
# 異步
 - @enableAsync開啟異步執行。
 - @Async設置異步執行的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM