SpringBoot實現(xiàn)定時任務(wù)@EnableScheduling
來源:http://blog.csdn.net/weixin_42949841/article/details/108695570

1. 新建項目,在pom.xml導(dǎo)入必要的依賴。
??
????????org.springframework.boot
????????spring-boot-starter-parent
????????2.0.1.RELEASE
????
????
????????
????????
????????????org.springframework.boot
????????????spring-boot-starter-web
????????
????
2. 寫一個SpringBoot的啟動類
啟動類里面使用@EnableScheduling 注解開啟定時任務(wù)功能。
@SpringBootApplication
@EnableScheduling
@MapperScan("com.less.parent.dao")
public?class?App?{
????public?static?void?main(String[]?args)?{
????????SpringApplication.run(App.class,?args);
????}
}
3. 編寫定時任務(wù)
要在任務(wù)的類上寫@Component,將當前的任務(wù)類注入到容器。
要在任務(wù)方法上寫@Scheduled,然后編寫cron表達式。
@Component
public?class?SchedulingTask?{
????
????//表示每隔3秒
????//?@Scheduled(fixedRate?=?3000)
????
????//?表示方法執(zhí)行完成后5秒
????//?@Scheduled(fixedDelay?=?5000)
????
????//?表示每五秒執(zhí)行一次
????@Scheduled(cron?=?"*/5?*?*?*?*??")
????public?void?TestTask()?{
????????SimpleDateFormat?dateFormat?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");
????????System.out.println(dateFormat.format(new?Date()));
????}
}
4. 執(zhí)行結(jié)果
2020-09-20?17:20:35
2020-09-20?17:20:40
2020-09-20?17:20:45
5. 總結(jié)
fixedDelay和fixedRate,單位是毫秒,這里這里就是5秒和3秒,它們的區(qū)別就是:fixedRate就是每多次分鐘一次,不論你業(yè)務(wù)執(zhí)行花費了多少時間。我都是1分鐘執(zhí)行1次,而fixedDelay是當任務(wù)執(zhí)行完畢后1分鐘在執(zhí)行。所以根據(jù)實際業(yè)務(wù)不同,我們會選擇不同的方式。
cron表達式:比如你要設(shè)置每天什么時候執(zhí)行,就可以用它不會寫的話,網(wǎng)上有專門的語法,可以單獨去查。
-END-
SSM框架權(quán)限系統(tǒng)腳手架教程(資料全)
加我微信回復(fù)“SSM框架權(quán)限”即可獲取
點個在看!?
謝謝支持喲 (*^__^*)
評論
圖片
表情
