在專案重構中,有一部分應用需要從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...