開啟定時(shí)任務(wù)步驟流程:
1、在啟動(dòng)類添加注解;(注意:千萬不要忘記?。?/p>
@EnableScheduling
2、在具體的方法上添加定時(shí)任務(wù)注解
@Scheduled(cron = “0 0 */3 * * ?”) // 每3個(gè)小時(shí)觸發(fā)一次
3、定時(shí)任務(wù)開啟時(shí)間:
常用的:
@Scheduled(cron = “0 0/1 * * * ?” ) //每一分鐘啟動(dòng)一次
@Scheduled(cron = “0 0 */1 * * ?” ) // 每1個(gè)小時(shí)觸發(fā)一次
當(dāng)同時(shí)設(shè)置多個(gè)定時(shí)任務(wù)時(shí),可能需要開啟多線程定時(shí)任務(wù)
開啟多線程定時(shí)任務(wù)地址鏈接
常用的幾種配置格式:
格式 | 描述 |
---|---|
0 0 10,14,16 * * ? | 每天上午10點(diǎn),下午2點(diǎn),4點(diǎn) |
0 0/30 9-18 * * ? | 朝九晚六工作時(shí)間內(nèi)每半小時(shí) |
0 0 12 ? * WED | 表示每個(gè)星期三中午12點(diǎn) |
0 0 12 * * ? | 每天中午12點(diǎn)觸發(fā) |
0 30 10 * * ? | 每天上午10:30觸發(fā) |
0 30 10 * * ? 2022 | 2022年的每天上午10:30觸發(fā) |
0 * 14 * * ? | 在每天下午2點(diǎn)到下午2:59期間的每1分鐘觸發(fā) |
0 0/5 14 * * ? | 在每天下午2點(diǎn)到下午2:55期間的每5分鐘觸發(fā) |
0 “0/5 14,18 * * ? | 在每天下午2點(diǎn)到2:55期間和下午6點(diǎn)到6:55期間的每5分鐘觸發(fā) |
0 30 10 ? * MON-FRI | 周一至周五的上午10:30觸發(fā) |
0 30 10 15 * ? | 每月15日上午10:30觸發(fā) |
0 30 10 L * ? | 每月最后一日的上午10:30觸發(fā) |
0 30 10 ? * 6L | 每月的最后一個(gè)星期五上午10:30觸發(fā) |
0 30 10 ? * 6L 2022-2023 | 2022年至2023年的每月的最后一個(gè)星期五上午10:30觸發(fā) |
0 30 10 ? “* 6#3 | 每月的第三個(gè)星期五上午10:30觸發(fā) |
特殊符號(hào)解釋:
" 阿拉伯?dāng)?shù)字 ":數(shù)值,出現(xiàn)在標(biāo)識(shí)符位置的數(shù)字代表對(duì)應(yīng)值,比如第一個(gè)2代表兩點(diǎn),第二個(gè)2代表二號(hào).
" * “” :通配,語義相當(dāng)于每… 比如第五個(gè)位置的 *就表示每月都會(huì)執(zhí)行(相當(dāng)于1-12)
" ? " :忽略,語義相當(dāng)于不管…
比如第六個(gè)位置的?就表示不管當(dāng)前是周幾就會(huì)執(zhí)行。至于為什么會(huì)有這種用法,我覺得應(yīng)該是因?yàn)樗推渌淖址赡軙?huì)沖突。如果用*的話表示周一到周日都會(huì)執(zhí)行,此時(shí)其他語義就不明確了,所以如果用不上星期的話一般給它用一個(gè)?表示
" / " :間隔,語義相當(dāng)于每隔… 比如例2中的第三個(gè)位置的2/5就表示從2點(diǎn)開始每隔五小時(shí)
" - " :區(qū)間,語義相當(dāng)于第…到…的每… 比如例2中的第二個(gè)位置的15-20就表示第15分鐘到20分鐘之間的每分鐘
" , " :枚舉,語義相當(dāng)于第…和… 比如例2中的第一個(gè)位置的15,20,40就表示第15秒、20秒和40秒
" L " :最后(last),語義相當(dāng)于最后一個(gè) 比如例2中的第四個(gè)位置的L就表示最后一天
" W " :工作日,字面意思,就是工作日 比如例3中的第四個(gè)位置的15W表示15號(hào)附近最近的工作日,如果15號(hào)剛好是工作日那就15號(hào)觸發(fā),如果15號(hào)是周六那就14號(hào)觸發(fā),如果15號(hào)是周日那就16號(hào)觸發(fā)。前面不帶數(shù)字就是所有匹配的工作日。文章來源:http://www.zghlxwxcb.cn/news/detail-497628.html
" # " :周定位,語義相當(dāng)于每月的第幾個(gè)周幾 比如例4中的第六個(gè)位置的2#3就表示第三個(gè)周一。文章來源地址http://www.zghlxwxcb.cn/news/detail-497628.html
到了這里,關(guān)于Java Scheduled定時(shí)任務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!