Spring定時(shí)任務(wù)實(shí)現(xiàn)與配置(二)
接上一篇,原本我以為我實(shí)現(xiàn)的方式很簡單了,在準(zhǔn)備寫(一)的時(shí)候,就去查了查別人是怎么實(shí)現(xiàn)定時(shí)任務(wù)的。不查還好,這一查,發(fā)現(xiàn)還有更簡單的。所以就會(huì)有這篇文章。
本文主要是討論,在完成Spring 項(xiàng)目搭建的情況下完成簡單的定時(shí)任務(wù)實(shí)現(xiàn)。
在上一篇中,我們實(shí)現(xiàn)了“最簡單”的定時(shí)任務(wù),在那里我們是基于MAVEN管理包的依賴,依賴以下兩個(gè)包:
<!-- 定時(shí)器依賴 開始 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> <!-- 定時(shí)器依賴 結(jié)束 -->
原本我想著 新的方法可能不需要呢,于是試試注釋掉會(huì)怎么樣,于是就出現(xiàn)了這樣的情況:
顯然我想錯(cuò)了,正式開始:
第一步,在maven的pom文件中添加上文列出的兩個(gè)包;
第二步,在spring配置管理xml頭部中,添加命名空間(大部分文獻(xiàn)都是這樣寫的,但還沒有找到正式的說法,如果有我會(huì)再修改這個(gè)名詞的,現(xiàn)在暫且用著)
<beans xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd ">
第三步,在spring配置文件中配置定時(shí)任務(wù)相關(guān)內(nèi)容
<task:annotation-driven scheduler="kevinScheduler"/> <task:scheduler id="kevinScheduler" pool-size="5"/>
第四步,完成業(yè)務(wù)邏輯實(shí)現(xiàn)類:
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.concurrent.TimeUnit; import org.joda.time.DateTime; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class ATask { @Scheduled(cron="0/10 * * * * ? ") //每10秒執(zhí)行一次 public void aTask(){ try { TimeUnit.SECONDS.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(DateTime.now().toDate())+"*********A任務(wù)每10秒執(zhí)行一次進(jìn)入測試"); } }
這樣的方式比配置的更為簡單,但是我認(rèn)為配置的方式會(huì)更加靈活,當(dāng)然實(shí)現(xiàn)的方式方法很多。我們只討論最簡單的實(shí)現(xiàn),顯然這個(gè)是我看到的最簡單的實(shí)現(xiàn)方法。
開啟服務(wù),我們來看看效果:
大致就這樣完成了,但是這里我發(fā)現(xiàn)好像遇到了上一篇文章結(jié)尾的時(shí)候,提到的同一時(shí)間點(diǎn)運(yùn)行了兩次代碼。我得再看看 ,如果有知道的朋友請給我留言!
下一篇是寫關(guān)于cron 表達(dá)式
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Spring定時(shí)任務(wù)實(shí)現(xiàn)與配置(一)
- java中 spring 定時(shí)任務(wù) 實(shí)現(xiàn)代碼
- SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法
- 最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)
- Spring Task定時(shí)任務(wù)的配置和使用詳解
- spring 定時(shí)任務(wù)@Scheduled詳解
- 詳解Spring整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)
- spring中定時(shí)任務(wù)taskScheduler的詳細(xì)介紹
- 詳解Spring Boot中使用@Scheduled創(chuàng)建定時(shí)任務(wù)
- Spring整合Quartz實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度的方法
相關(guān)文章
SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù)
這篇文章主要介紹了SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過程解析
這篇文章主要介紹了Simple Java Mail郵件發(fā)送實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Spring Cloud Sleuth整合zipkin過程解析
這篇文章主要介紹了Spring Cloud Sleuth整合zipkin過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12關(guān)于SpringBoot中Ajax跨域以及Cookie無法獲取丟失問題
這篇文章主要介紹了關(guān)于SpringBoot中Ajax跨域以及Cookie無法獲取丟失問題,本文具有參考意義,遇到相同或者類似問題的小伙伴希望可以從中找到靈感2023-03-03Maven指令打包SpringBoot項(xiàng)目提示沒有主清單文件問題
在Java開發(fā)中,打包Jar時(shí)常會(huì)遇到“沒有主清單屬性”的錯(cuò)誤,這通常是因?yàn)樵趐om.xml文件中沒有正確配置maven插件導(dǎo)致的,特別是在使用自定義的<parent/>節(jié)點(diǎn)而非spring-boot-starter-parent時(shí)2024-09-09MyBatis動(dòng)態(tài)SQL如何實(shí)現(xiàn)前端指定返回字段
這篇文章主要介紹了MyBatis動(dòng)態(tài)SQL如何實(shí)現(xiàn)前端指定返回字段,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01