spring利用squertz實(shí)現(xiàn)定時(shí)任務(wù)
前言
說起定時(shí)任務(wù),開發(fā)的小伙伴們肯定不陌生了。有些事總是需要計(jì)算機(jī)去完成的,而不是傻傻的靠我們自己去??墒呛枚嗳藢?duì)定時(shí)器總感覺很陌生,今天小編就帶小伙伴們揭開它的神秘面紗,講解一下spring利用squertz實(shí)現(xiàn)定時(shí)任務(wù)。
一、需要的Jar
quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.RELEASE.jar spring-context-3.0.5.RELEASE.jar spring-context-support-3.0.5.RELEASE.jar spring-asm-3.0.5.RELEASE.jar spring-expression-3.0.5.RELEASE.jar spring.transaction-3.0.5.RELEASE.jar spring-web-3.0.5.RELEASE.jar
二、配置文件
這里配置你要在什么時(shí)候執(zhí)行你的定時(shí)任務(wù),執(zhí)行的是什么方法,如下面是在2016.11.10 23:00:00,執(zhí)行com.seewoedu.train.quartz.GenerateRewardListTask的generate方法,這里使用cron指定了執(zhí)行的時(shí)間,相關(guān)語法可查看http://www.dhdzp.com/article/103861.htm
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 啟動(dòng)觸發(fā)器的配置開始 --> <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="myJobTrigger" /> </list> </property> </bean> <!-- 啟動(dòng)觸發(fā)器的配置結(jié)束 --> <!-- quartz-2.x的配置 --> <bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <ref bean="myJobDetail" /> </property> <property name="cronExpression"> <!--<value>10 0/1 * * * ?</value>--> <!-- Cron表達(dá)式“10 */1 * * * ?”意為:從10秒開始,每1分鐘執(zhí)行一次。 --> <value>0 0 9 10 12 ? 2016</value> <!-- Cron表達(dá)式“0 0 23 10 11 ? 2016”意為:只在2016.11.10 23:00:00 執(zhí)行。 --> </property> </bean> <!-- 調(diào)度的配置結(jié)束 --> <!-- job的配置開始 --> <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="myJob" /> </property> <property name="targetMethod"> <value>generate</value> </property> </bean> <!-- job的配置結(jié)束 --> <!-- 工作的bean --> <bean id="myJob" class="com.seewoedu.train.quartz.GenerateRewardListTask" /> </beans>
三、被執(zhí)行的方法
public class GenerateRewardListTask {
@Autowired
private GiftReceiveRecordService giftReceiveRecordService;
org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class);
public void generate() throws Exception {
giftReceiveRecordService.generateRewardMember(); //執(zhí)行的方法
}
}
四、需要注意的問題
1、執(zhí)行時(shí)間指定到年份時(shí),會(huì)存在一個(gè)問題,就是在你在過了這個(gè)時(shí)間后再啟動(dòng)項(xiàng)目的時(shí)候,他會(huì)一直報(bào)一個(gè)memory leak的錯(cuò)誤,大概的意思是你的定時(shí)任務(wù)將永遠(yuǎn)不會(huì)被執(zhí)行,導(dǎo)致項(xiàng)目一直啟動(dòng)不了。
2、定時(shí)任務(wù)是通過你部署項(xiàng)目開始計(jì)算到你要執(zhí)行定時(shí)任務(wù)的時(shí)間間隔,而不是實(shí)時(shí)獲取你服務(wù)器時(shí)間的方法實(shí)現(xiàn)的,所以通過修改服務(wù)器時(shí)間想測(cè)試定時(shí)任務(wù)是否生效是不可行的。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- JAVA中 Spring定時(shí)器的兩種實(shí)現(xiàn)方式
- java中 spring 定時(shí)任務(wù) 實(shí)現(xiàn)代碼
- 最流行的java后臺(tái)框架spring quartz定時(shí)任務(wù)
- Spring整合Quartz實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度的方法
- Spring整合Quartz實(shí)現(xiàn)動(dòng)態(tài)定時(shí)器的示例代碼
- Spring整合TimerTask實(shí)現(xiàn)定時(shí)任務(wù)調(diào)度
- spring 定時(shí)任務(wù)@Scheduled詳解
- spring中定時(shí)任務(wù)taskScheduler的詳細(xì)介紹
相關(guān)文章
如何解決SpringBoot集成百度UEditor圖片上傳后直接訪問404
在本篇文章里小編給大家整理的是一篇關(guān)于如何解決SpringBoot集成百度UEditor圖片上傳后直接訪問404相關(guān)文章,需要的朋友們學(xué)習(xí)下。2019-11-11
簡(jiǎn)單了解Spring beanfactory循環(huán)依賴命名重復(fù)屬性
這篇文章主要介紹了簡(jiǎn)單了解Spring beanfactory循環(huán)依賴命名重復(fù)2大屬性,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java利用apache ftp工具實(shí)現(xiàn)文件上傳下載和刪除功能
這篇文章主要為大家詳細(xì)介紹了Java利用apache ftp工具實(shí)現(xiàn)文件上傳下載、刪除功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
java 使用線程做的一個(gè)簡(jiǎn)單的ATM存取款實(shí)例代碼
線程 Thread 類,和 Runable 接口 比較兩者的特點(diǎn)和應(yīng)用領(lǐng)域.可以,直接繼承線程Thread類。該方法編寫簡(jiǎn)單,可以直接操作線程,適用于單重繼承情況,因而不能在繼承其他類,下面我們來看一個(gè)實(shí)例2013-08-08
java ConcurrentHashMap分段加鎖提高并發(fā)效率
這篇文章主要為大家介紹了java ConcurrentHashMap分段加鎖提高并發(fā)效率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Java KindEditor粘貼圖片自動(dòng)上傳到服務(wù)器功能實(shí)現(xiàn)
這篇文章主要介紹了Java KindEditor粘貼圖片自動(dòng)上傳到服務(wù)器功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
springcloud gateway如何配置動(dòng)態(tài)路由
本文主要介紹了在SpringCloudGateway中配置動(dòng)態(tài)路由的步驟,包括引入依賴、配置路由源、添加配置中心依賴、配置配置中心、定義路由規(guī)則和刷新配置等內(nèi)容,使路由規(guī)則在配置中心更新時(shí),無需重啟網(wǎng)關(guān)服務(wù)即可動(dòng)態(tài)應(yīng)用新的路由規(guī)則2024-10-10
springBoot配置國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫的示例詳解
本文向大家介紹springBoot?配置國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫的相關(guān)知識(shí),文章結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
ssm框架controller層返回json格式數(shù)據(jù)到頁面的實(shí)現(xiàn)
這篇文章主要介紹了ssm框架controller層返回json格式數(shù)據(jù)到頁面的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09

