現代的應用程式早已不是以前的那些由簡單的增刪改查拼湊而成的程式了,高複雜性早已是標配,而任務的定時排程與執行也是對程式的基本要求了。
通過時間表示式來進行排程和執行的一類任務被稱為定時任務
很多業務需求的實現都離不開定時任務,例如備忘錄提醒、鬧鐘等功能。
定時任務的實現方式:
時間表示式:
時間表示式來控制任務的排程與執行,時間表示式又稱為:cron表示式cron表示式用於配置crontrigger的例項。cron表示式實際上是由七個子表示式組成。這些表示式之間用空格分隔,如 :" * * * * * * ? * "
從前到後依次代表:
1.seconds (秒)
2.minutes(分)
3.hours(小時)
4.day-of-month (天)
5.month(月)
6.day-of-week (周)
7.year(年)
例如 :「 * 30 12 5 * * ? * 」 就代表每個月的5號中午12點30執行cron表示式的格式:
秒 分 時 日 月 周 年(可選)
欄位名允許的值
允許的特殊字元
秒0-59
, - * /
分0-59
, - * /
小時0-23
, - * /
日1-31
, - * ? / l w c
月1-12 or jan-dec
, - * /
周1-7 or sun-sat
, - * ? / l c #
年(可為空)
empty
1970-2099 , - * /
字元含義:
" * ":代表所有可能的值。在哪個欄位中代表哪個含義
" - ":表示指定範圍。
" , " :表示可有多個值。例如:「 * 10,20 12 * * * ? * 」,「10,20」代表在12點10分和12點20分都會觸發。
" / " :表示執行過程。例如:「 * 10/20 12 * * * ? * 」,表示在每天的12點鐘這個小時內從10分鐘開始,每20分鐘執行一次
" l" :在月字段中," l" 表示乙個月的最後一天;在周字段中," l"表示乙個星期的最後一天
" ? " :與 " * "含義類似,但為了避免衝突,一般在日字段 和周欄位 使用時 需要將另外乙個的值設為 " ? "
SpringBoot 定時任務篇
一.基於註解 scheduled預設為單執行緒,開啟多個任務時,任務的執行時機會受上乙個任務執行時間的影響。1 建立定時器 component configuration 1.主要用於標記配置類,兼備component的效果。enablescheduling 2.開啟定時任務 public clas...
springboot定時任務介紹
scheduled為設定定時任務週期的註解,引數常用的為兩種 第一種就是fixedrate,他表示以一種固定頻率去執行,單位為毫秒,例如 scheduled fixedrate 5000 表示為每五秒執行一次 第二種為cron,他可以表達某種特定頻率,例如每天晚上三點執行,每個星期三中午十二點等 每...
cron定時任務介紹
什麼是cron?cron是linux系統中用來定期執行或指定程式任務的一種服務或軟體。與它相關的有兩個工具 crond 和 crontab。crond 就是 cron 在系統內的宿主程式,crontab 是管理 cron 任務的管理工具。一般情況下,我們安裝完centos5 6 linux系作業系統...