本發(fā)明屬于規(guī)則管理領(lǐng)域,尤其涉及一種應(yīng)用系統(tǒng)規(guī)則管理方法及裝置。
背景技術(shù):
it應(yīng)用系統(tǒng)開(kāi)發(fā)中存在很多通用的校驗(yàn)規(guī)則,例如:起止日期查詢范圍限制、金額字段小數(shù)點(diǎn)后尾數(shù)限制等,大部分是由開(kāi)發(fā)人員單獨(dú)開(kāi)發(fā),每人編寫(xiě)不同的實(shí)現(xiàn)代碼、代碼質(zhì)量難以保證,嚴(yán)重的導(dǎo)致系統(tǒng)崩潰,安全難以得到保障,且在規(guī)則變化后,開(kāi)發(fā)人員需重新修改代碼、重啟應(yīng)用服務(wù)才能夠生效,后期維護(hù)工作也十分復(fù)雜。
因此,迫切需要一種高效、安全的應(yīng)用系統(tǒng)規(guī)則管理方案來(lái)解決上述技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種應(yīng)用系統(tǒng)規(guī)則管理方法及裝置,以解決上述問(wèn)題。
本發(fā)明實(shí)施例提供一種應(yīng)用系統(tǒng)規(guī)則管理方法。上述方法包括以下步驟:通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;
加載設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
本發(fā)明實(shí)施例提供一種應(yīng)用系統(tǒng)規(guī)則管理裝置,包括設(shè)置模塊、處理模塊;其中,所述設(shè)置模塊與所述處理模塊相連;
所述設(shè)置模塊,用于通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;
所述處理模塊,用于加載設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
通過(guò)以下方案:通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;加載設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
上述技術(shù)方案中,僅僅通過(guò)可視化參數(shù)配置界面進(jìn)行參數(shù)配置,即可生成應(yīng)用系統(tǒng)規(guī)則,降低了操作人員的專業(yè)度,大大提高了規(guī)則修改的便利性,提高了效率;同時(shí),通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,無(wú)需修改代碼和重啟服務(wù),降低了出錯(cuò)率,保證了安全。
通過(guò)以下方案:應(yīng)用系統(tǒng)啟動(dòng)時(shí),將所述應(yīng)用系統(tǒng)規(guī)則加載至系統(tǒng)緩存;調(diào)用系統(tǒng)緩存中的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理,提高了系統(tǒng)處理效率。
上述技術(shù)方案中,通過(guò)對(duì)系統(tǒng)緩存中的應(yīng)用系統(tǒng)規(guī)則進(jìn)行調(diào)用,大大提高了系統(tǒng)處理效率。
通過(guò)以下方案:設(shè)置系統(tǒng)緩存的有效時(shí)間,每次自動(dòng)刷新時(shí),判斷緩存是否失效,若沒(méi)有失效,則不進(jìn)行后續(xù)更新處理。
上述技術(shù)方案中,通過(guò)設(shè)置系統(tǒng)緩存的有效時(shí)間,避免應(yīng)用系統(tǒng)規(guī)則頻繁處理,保證了系統(tǒng)的平穩(wěn)運(yùn)行。
通過(guò)以下方案:業(yè)務(wù)處理時(shí),對(duì)所述應(yīng)用系統(tǒng)規(guī)則添加讀鎖;或者,刷新系統(tǒng)緩存過(guò)程中,添加寫(xiě)鎖,直至所述應(yīng)用系統(tǒng)規(guī)則更新完畢。
上述技術(shù)方案中,通過(guò)業(yè)務(wù)處理時(shí);或者,刷新系統(tǒng)緩存過(guò)程中鎖機(jī)制的設(shè)置,避免了應(yīng)用系統(tǒng)規(guī)則前后使用不一致,導(dǎo)致系統(tǒng)出錯(cuò),有利于保證系統(tǒng)的平穩(wěn)運(yùn)行。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1所示為本發(fā)明實(shí)施例1的參數(shù)管理方法處理流程圖;
圖2所示為本發(fā)明實(shí)施例2的參數(shù)管理裝置結(jié)構(gòu)圖;
圖3所示為本發(fā)明實(shí)施例3的參數(shù)管理裝置結(jié)構(gòu)圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
圖1所示為本發(fā)明實(shí)施例1的參數(shù)管理方法處理流程圖,包括以下步驟:
步驟101:通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;
界面操作:
一般系統(tǒng)參數(shù)的修改都需要專業(yè)運(yùn)維/開(kāi)發(fā)人員進(jìn)行修改,本發(fā)明實(shí)施例設(shè)計(jì)了html界面,降低了專業(yè)度,提高了可視化能力,使一些不具備it知識(shí)的人員也可以方便、快捷的進(jìn)行查詢、修改操作。
步驟102:加載設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
進(jìn)一步地,應(yīng)用系統(tǒng)啟動(dòng)時(shí),將所述應(yīng)用系統(tǒng)規(guī)則加載至系統(tǒng)緩存;調(diào)用系統(tǒng)緩存中的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
其中,通過(guò)刷新系統(tǒng)緩存,重新加載數(shù)據(jù)庫(kù)中的參數(shù)配置信息,更新所述應(yīng)用系統(tǒng)規(guī)則。
其中,通過(guò)定義cron表達(dá)式設(shè)置自動(dòng)刷新執(zhí)行時(shí)間,對(duì)系統(tǒng)緩存進(jìn)行刷新。
進(jìn)一步地,設(shè)置系統(tǒng)緩存的有效時(shí)間,每次自動(dòng)刷新時(shí),判斷緩存是否失效,若沒(méi)有失效,則不進(jìn)行后續(xù)更新處理。
進(jìn)一步地,業(yè)務(wù)處理時(shí),對(duì)所述應(yīng)用系統(tǒng)規(guī)則添加讀鎖。
進(jìn)一步地,刷新系統(tǒng)緩存過(guò)程中,添加寫(xiě)鎖,直至所述應(yīng)用系統(tǒng)規(guī)則更新完畢。
具體而言:
quartz是一個(gè)開(kāi)源的作業(yè)調(diào)度框架,它完全由java寫(xiě)成,并設(shè)計(jì)用于j2se和j2ee應(yīng)用中;它提供了巨大的靈活性而不犧牲簡(jiǎn)單性,能夠用它來(lái)為執(zhí)行一個(gè)作業(yè)而創(chuàng)建簡(jiǎn)單的或復(fù)雜的調(diào)度,它有很多特征,如:數(shù)據(jù)庫(kù)支持,集群,插件,ejb作業(yè)預(yù)構(gòu)建,javamail及其它,支持cron-like表達(dá)式等等。本方法采用quartz實(shí)現(xiàn)定時(shí)刷新緩存機(jī)制。
本方法實(shí)施例提出一種基于緩存的應(yīng)用系統(tǒng)規(guī)則設(shè)計(jì),基于java但不限于java系統(tǒng),將應(yīng)用系統(tǒng)規(guī)則抽象為對(duì)象(rule.java),由核心工程師開(kāi)發(fā),其他開(kāi)發(fā)人員使用時(shí)只需要引入相關(guān)bean即可。該應(yīng)用系統(tǒng)規(guī)則隨應(yīng)用系統(tǒng)的啟動(dòng)而啟動(dòng)、讀取數(shù)據(jù)庫(kù)中存儲(chǔ)的配置信息、加載到j(luò)vm中,且可以定時(shí)/手動(dòng)刷新、重新加載數(shù)據(jù)庫(kù)配置信息,無(wú)需修改代碼、重啟應(yīng)用系統(tǒng)服務(wù)即可完成應(yīng)用系統(tǒng)規(guī)則的變更。規(guī)則默認(rèn)每天0點(diǎn)(應(yīng)用活躍度低)自動(dòng)刷新,進(jìn)行修改。
為進(jìn)一步提高系統(tǒng)的便利性,本發(fā)明實(shí)施例還設(shè)計(jì)了http界面,非開(kāi)發(fā)人員也可以很容易的修改系統(tǒng)的相應(yīng)的應(yīng)用系統(tǒng)規(guī)則。
應(yīng)用系統(tǒng)規(guī)則會(huì)在容器(應(yīng)用)啟動(dòng)時(shí)加載到系統(tǒng)內(nèi)存中(即緩存),在處理業(yè)務(wù)時(shí)會(huì)直接從內(nèi)存獲取、使用,會(huì)提高系統(tǒng)處理效率。在應(yīng)用規(guī)則變化時(shí)需要刷新系統(tǒng)的緩存,本發(fā)明實(shí)施例使用定時(shí)、立即刷新兩種方式。
1、界面操作
一般系統(tǒng)參數(shù)的修改都需要專業(yè)運(yùn)維/開(kāi)發(fā)人員進(jìn)行修改,本發(fā)明實(shí)施例設(shè)計(jì)了html界面,降低了專業(yè)度,提高了可視化能力,使一些不具備it知識(shí)的人員也可以方便、快捷的進(jìn)行查詢、修改操作。
2、自動(dòng)刷新緩存
自動(dòng)刷新通過(guò)springquartz框架實(shí)現(xiàn),可以自定義cron表達(dá)式設(shè)置自動(dòng)刷新執(zhí)行時(shí)間。一般設(shè)置在應(yīng)用系統(tǒng)請(qǐng)求較少的時(shí)間段執(zhí)行。
3、手動(dòng)刷新緩存
根據(jù)系統(tǒng)需要,操作人員可以選擇立即執(zhí)行,系統(tǒng)會(huì)觸發(fā)相關(guān)bean,立即刷新緩存。
4、并發(fā)處理
為保證在刷新緩存的過(guò)程中,不影響正在處理的業(yè)務(wù),本發(fā)明實(shí)施例使用reentrantreadwritelock鎖機(jī)制來(lái)保證系統(tǒng)的并發(fā)。
在業(yè)務(wù)處理使用規(guī)則時(shí),會(huì)添加讀鎖,保證在使用過(guò)程中不能刷新緩存。在刷新系統(tǒng)緩存的過(guò)程中,會(huì)添加寫(xiě)鎖,排斥其它讀鎖,其它使用應(yīng)用系統(tǒng)規(guī)則的業(yè)務(wù)需等待系統(tǒng)緩存刷新完成后使用。
為保證系統(tǒng)的平穩(wěn)運(yùn)行,設(shè)置系統(tǒng)緩存的有效時(shí)間,每次自動(dòng)刷新時(shí)會(huì)首先判斷系統(tǒng)緩存是否失效,如果沒(méi)有失效,則不進(jìn)行后續(xù)更新處理。
圖2所示為本發(fā)明實(shí)施例2的參數(shù)管理裝置結(jié)構(gòu)圖,包括第一設(shè)置模塊、處理模塊;其中,所述第一設(shè)置模塊與所述處理模塊相連;
所述第一設(shè)置模塊,用于通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;
所述處理模塊,用于從所述第一設(shè)置模塊中獲取設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,并加載所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
其中,所述處理模塊,還用于業(yè)務(wù)處理時(shí),對(duì)所述應(yīng)用系統(tǒng)規(guī)則添加讀鎖;還用于刷新系統(tǒng)緩存過(guò)程中,添加寫(xiě)鎖,直至所述應(yīng)用系統(tǒng)規(guī)則更新完畢。
圖3所示為本發(fā)明實(shí)施例3的參數(shù)管理裝置結(jié)構(gòu)圖,在圖2的基礎(chǔ)上,添加第二設(shè)置模塊;其中,所述第二設(shè)置模塊與所述處理模塊相連;
所述第二設(shè)置模塊,用于設(shè)置系統(tǒng)緩存的有效時(shí)間;
所述處理模塊,還用于從所述第二設(shè)置模塊中獲取設(shè)置的系統(tǒng)緩存的有效時(shí)間;還用于每次自動(dòng)刷新時(shí),根據(jù)所述系統(tǒng)緩存的有效時(shí)間,判斷緩存是否失效,若沒(méi)有失效,則不進(jìn)行后續(xù)更新處理。
通過(guò)以下方案:通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,設(shè)置應(yīng)用系統(tǒng)規(guī)則;加載設(shè)置的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理。
上述技術(shù)方案中,僅僅通過(guò)可視化參數(shù)配置界面進(jìn)行參數(shù)配置,即可生成應(yīng)用系統(tǒng)規(guī)則,降低了操作人員的專業(yè)度,大大提高了規(guī)則修改的便利性,提高了效率;同時(shí),通過(guò)參數(shù)配置界面進(jìn)行參數(shù)配置,無(wú)需修改代碼和重啟服務(wù),降低了出錯(cuò)率,保證了安全。
通過(guò)以下方案:應(yīng)用系統(tǒng)啟動(dòng)時(shí),將所述應(yīng)用系統(tǒng)規(guī)則加載至系統(tǒng)緩存;調(diào)用系統(tǒng)緩存中的所述應(yīng)用系統(tǒng)規(guī)則,對(duì)業(yè)務(wù)進(jìn)行處理,提高了系統(tǒng)處理效率。
上述技術(shù)方案中,通過(guò)對(duì)系統(tǒng)緩存中的應(yīng)用系統(tǒng)規(guī)則進(jìn)行調(diào)用,大大提高了系統(tǒng)處理效率。
通過(guò)以下方案:設(shè)置系統(tǒng)緩存的有效時(shí)間,每次自動(dòng)刷新時(shí),判斷緩存是否失效,若沒(méi)有失效,則不進(jìn)行后續(xù)更新處理。
上述技術(shù)方案中,通過(guò)設(shè)置系統(tǒng)緩存的有效時(shí)間,避免應(yīng)用系統(tǒng)規(guī)則頻繁處理,保證了系統(tǒng)的平穩(wěn)運(yùn)行。
通過(guò)以下方案:業(yè)務(wù)處理時(shí),對(duì)所述應(yīng)用系統(tǒng)規(guī)則添加讀鎖;或者,刷新系統(tǒng)緩存過(guò)程中,添加寫(xiě)鎖,直至所述應(yīng)用系統(tǒng)規(guī)則更新完畢。
上述技術(shù)方案中,通過(guò)業(yè)務(wù)處理時(shí);或者,刷新系統(tǒng)緩存過(guò)程中鎖機(jī)制的設(shè)置,避免了應(yīng)用系統(tǒng)規(guī)則前后使用不一致,導(dǎo)致系統(tǒng)出錯(cuò),有利于保證系統(tǒng)的平穩(wěn)運(yùn)行。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。