Spring定時(shí)任務(wù)實(shí)現(xiàn)與配置(二)
接上一篇,原本我以為我實(shí)現(xiàn)的方式很簡(jiǎn)單了,在準(zhǔn)備寫(xiě)(一)的時(shí)候,就去查了查別人是怎么實(shí)現(xiàn)定時(shí)任務(wù)的。不查還好,這一查,發(fā)現(xiàn)還有更簡(jiǎn)單的。所以就會(huì)有這篇文章。
本文主要是討論,在完成Spring 項(xiàng)目搭建的情況下完成簡(jiǎn)單的定時(shí)任務(wù)實(shí)現(xiàn)。
在上一篇中,我們實(shí)現(xiàn)了“最簡(jiǎn)單”的定時(shí)任務(wù),在那里我們是基于MAVEN管理包的依賴(lài),依賴(lài)以下兩個(gè)包:
<!-- 定時(shí)器依賴(lài) 開(kāi)始 -->
<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í)器依賴(lài) 結(jié)束 -->
原本我想著 新的方法可能不需要呢,于是試試注釋掉會(huì)怎么樣,于是就出現(xiàn)了這樣的情況:

顯然我想錯(cuò)了,正式開(kāi)始:
第一步,在maven的pom文件中添加上文列出的兩個(gè)包;
第二步,在spring配置管理xml頭部中,添加命名空間(大部分文獻(xiàn)都是這樣寫(xiě)的,但還沒(méi)有找到正式的說(shuō)法,如果有我會(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)類(lèi):
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)入測(cè)試");
}
}
這樣的方式比配置的更為簡(jiǎn)單,但是我認(rèn)為配置的方式會(huì)更加靈活,當(dāng)然實(shí)現(xiàn)的方式方法很多。我們只討論最簡(jiǎn)單的實(shí)現(xiàn),顯然這個(gè)是我看到的最簡(jiǎn)單的實(shí)現(xiàn)方法。
開(kāi)啟服務(wù),我們來(lái)看看效果:

大致就這樣完成了,但是這里我發(fā)現(xiàn)好像遇到了上一篇文章結(jié)尾的時(shí)候,提到的同一時(shí)間點(diǎn)運(yùn)行了兩次代碼。我得再看看 ,如果有知道的朋友請(qǐng)給我留言!
下一篇是寫(xiě)關(guān)于cron 表達(dá)式
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(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)文章
Java對(duì)象轉(zhuǎn)JSON三種常用的方法
在Java中可以使用多種方式將對(duì)象轉(zhuǎn)換為JSON字符串,下面這篇文章主要給大家介紹了關(guān)于Java對(duì)象轉(zhuǎn)JSON三種常用的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
@Valid 校驗(yàn)無(wú)效,BindingResult未獲得錯(cuò)誤的解決
這篇文章主要介紹了@Valid 校驗(yàn)無(wú)效,BindingResult未獲得錯(cuò)誤的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
MyBatis多表查詢(xún)的操作方法注解和XML實(shí)現(xiàn)SQL語(yǔ)句
這篇文章主要介紹了MyBatis多表查詢(xún)的操作方法注解和XML實(shí)現(xiàn)SQL語(yǔ)句,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04
Java 生產(chǎn)者/消費(fèi)者問(wèn)題實(shí)例詳解
這篇文章主要實(shí)例分析了java中生產(chǎn)者消費(fèi)者問(wèn)題的方法,需要的朋友可以可以參考下2017-04-04
Java如果通過(guò)jdbc操作連接oracle數(shù)據(jù)庫(kù)
這篇文章主要介紹了Java如果通過(guò)jdbc操作連接oracle數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java如何優(yōu)雅地關(guān)閉資源try-with-resource及其異常抑制
這篇文章主要介紹了Java如何優(yōu)雅地關(guān)閉資源try-with-resource及其異常抑制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

