quartz使用經驗談

2021-08-26 21:33:40 字數 1890 閱讀 4382

在專案重構中,有一部分應用需要從autosys轉移到quartz,由於平台差異性以及雲計算環境下的集群控制,頗費周折。

1.使用自己的資料庫連線池

quartz的集群必須使用資料庫,而一般做法是在quartz中配置資料庫的連線資訊。但是專案裡都是用的連線池呢,資料庫不想給quartz單獨開小灶,咋辦呢?其實quartz也可以納入資料庫連線的統一管理的啦。首先寫乙個類,擴充套件org.quartz.utils.connectionprovider介面,實現getconnection方法

示例**如下:

public connection getconnection() throws sqlexception

catch (exception e)

}然後在quartz.properties中加上如下配置:

org.quartz.jobstore.datasource = mydatasource

org.quartz.datasource.mydatasource.connectionprovider.class = com.myjob.util.connectionpoolconnectionprovider

第一行定義的資料來源名字就是第二行中間的那個,第二行定義的類名就是自己寫的那個連線類,注意路徑哈,這樣就可以用我們自己的連線池了。

2.使用集群配置

org.quartz.jobstore.class = org.quartz.impl.jdbcjobstore.jobstoretx

這一句是指定jobstore,集群必須使用資料庫,不能是org.quartz.simpl.ramjobstore

org.quartz.jobstore.driverdelegateclass = org.quartz.impl.jdbcjobstore.oracle.oracledelegate

org.quartz.jobstore.isclustered = true

這一句配置指定使用集群,quartz的資料庫指令碼中有新建乙個叫做qrtz_lock的表,各job通過競爭這個表的行鎖來取得執行權。

3.指定job覆蓋

org.quartz.plugin.jobinitializer.overwriteexistingjobs = true

如果這個覆蓋配置為false,quratz啟動以後將以資料庫的資料為準,配置檔案的修改不起作用。這個配置很重要哈,姐被這個折騰了很久~~~配置的引數不起作用,加的listener不起作用,各種錯啊,後來清了資料庫才好。

4.job的引數配置

可以在job的定義檔案裡配置job-data-map來使job的引數配置化。配置檔案如下:

mockjob

jobgroup

com.myjob.job.mockjob

true

false

false

myjoblistener

param1

param-value1

讀取引數的**如下:

jobexecutioncontext.getjobdetail().getjobdatamap().get("param1");

jobexecutioncontext為job或者listener的引數

5.job的執行日誌

找了quartz好像沒找到執行記錄,就是那種執行一次新增一條記錄的表,沒辦法只好自己實現了。這個在listener裡面做比較好,自己寫乙個listener的類,擴充套件org.quartz.joblistener介面,需要實現3個方法,我們在jobwa***ecuted方法中,也就是job完成之後做記錄,新建一張表,記錄所需資訊就好,job詳情可以在jobexecutioncontext.getjobdetail()中得到,具體實現略。

6.calendar

用於排除一些特使的節假日等,如何在配置中使用calender還沒研究出來,待續

CodeBlocks 使用經驗談

linux下優秀的c c ide 屈指可數 我只看中了兩個 anjuta,codeblocks。因為anjuta在非ubuntu上安裝比較麻煩,而且要求系統比較新還不支援windows平台。所以,大多情況下都是以codeblocks為主。現分享一些codeblocks的使用經驗。以最新的codebl...

Chrome使用經驗談

儘管我對於google chrome 谷歌瀏覽器 有著這樣那樣的偏愛,但是我仍然需要誠實告訴你它並不是對所有人都是乙個好選擇。當然它有著啟動快速 介面簡潔的特點,但是對於習慣了ie firefox介面的朋友來說也許這並不是乙個好選擇,除此之外它還是乙個揮霍無度的傢伙,所以2g記憶體是它的基礎配備,因...

跳槽經驗談

每年年初跳槽最多,跳槽是一門學問,也是一種策略。跳槽並不意味著你就能夠取得職業的成功,當面臨跳槽時,如何順利地完成跳槽,從而取得職業的成功呢?以下是一些切身體會,值得大家參考。1 不要指望會一下子能夠跳到多麼好的公司,絕大多數公司都乙個樣子。比如用友 金蝶 亞信 神馬這些公司,其實基本上乙個樣子。2...