Quartz定時器的使用之XML配置方式 一

2021-07-17 00:22:16 字數 2239 閱讀 9587

最近在 開發中 要使用定時器進行 做伺服器定時任務 廢話不多說:

框架 ssm+dubbo

quartzjar 包

org.quartz-schedulergroupid>

quartzartifactid>

2.2.3version>

dependency>

public

class videourlservice

public

void

setvideoservice(videoservice videoservice)

public

void

getallvideourl() throws exception

}integer flag = videoservice.updatevidellist4list(list);

if (flag > 0) else

}} catch (exception e)

}

需要注意的是: 當任務執行發生錯誤的時候怎麼辦?

quartz 提供了兩種方案: 1 立即重新執行任務 (這種只會停止當前任務執行)2. 立即停止所有相關這個任務的觸發器 (該任務的觸發器被停止後不會進行再被觸發)

那麼怎麼解決呢?

1 立即重新執行任務:

(注意看**注釋)

try  catch (exception e)
2 立即終止該任務執行

(注意看**注釋)

try  catch (exception e)
2. 在 spring 的配置檔案中進行配置

// 配置要執行的任務類

id="videourlservice"

class="com.spacexplore.videourlservice">

name="videoservice"

ref="videoservice">

property>

bean>

//定義觸發任務

id="videourljob"

class="org.springframework.scheduling.quartz.methodinvokingjobdetailfactorybean">

name="targetobject">

bean="videourlservice"/>

property>

name="targetmethod"

value="getallvideourl"/>

bean>

// 定義排程觸發器

id="videourltrigger"

class="org.springframework.scheduling.quartz.crontrigge***ctorybean">

name="jobdetail"

ref="videourljob">

property>

name="cronexpression">

0 0/5 * * * ?value>//這裡做測試我們設定為每5分鐘進行請求網易雲

property>

bean>

// 定義排程工廠類

id="schedule***ctory"

class="org.springframework.scheduling.quartz.schedule***ctorybean"

lazy-init="false"

autowire="no">

name="triggers">

bean="ldcodetrigger" />

bean="videourltrigger"/>

list>

property>

bean>

** 值得一提的是:

1.lazy-init 如果設定為 true,這任務工程在伺服器啟動時不會載入。所以這裡必須設定為 false。

2. 由於在上邊的配置中定義的了 default-autowire=」byname」, spring 會自動注入 quartz 中的 datasource bean,所以會報異常。 解決方法:在 bean 中關掉 autowired**

Quartz的定時器

quartz在指定的時間執行 很強大的 定時執行機制 1 定義上班鬧鐘定時類 如下 package timer 開始上班,這個程式要求每天 非週末 早晨八點需要啟動一次 author sam public class startworkjob 看到了嗎,這個類 startworkjob 並沒有繼承任...

quartz定時器使用

quartz和spring整合,需要配置schedule ctorybean用來產生stdscheduler 首先使用schedule ctory得到scheduler,我們的任務時乙個實現job介面的類,而真正被排程使用的是jobdetail 剩下的就是使用觸發器trigger,常用兩種觸發器 t...

Java定時器和Quartz

自定義乙個定時器 author lw public class mytimer extends thread override public void run catch interruptedexception e send 開始執行任務 public void execute 定時任務 priv...