專利名稱:一種流程實(shí)例數(shù)據(jù)處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種流程實(shí)例數(shù)據(jù)處理方法和裝置。
技術(shù)背景
隨著企業(yè)信息化的快速發(fā)展,BPM(Business Process Management,業(yè)務(wù)流程管理)在信息化過程中起到了重要的作用。BPM是一種對(duì)企業(yè)各種業(yè)務(wù)環(huán)節(jié)進(jìn)行整合以達(dá)成全面管理的方式。由于BPM產(chǎn)品的重要性,企業(yè)對(duì)BPM產(chǎn)品的依賴度越來越高,與此同時(shí)企業(yè)也對(duì)BPM產(chǎn)品提出了更高的要求,其中最突出的就是BPM產(chǎn)品的性能問題。
BPM產(chǎn)品的性能瓶頸主要表現(xiàn)在對(duì)流程實(shí)例數(shù)據(jù)的頻繁訪問方面。在現(xiàn)有技術(shù)中, BPM產(chǎn)品通常采用工作流來執(zhí)行業(yè)務(wù)流程的自動(dòng)流轉(zhuǎn)或自動(dòng)執(zhí)行。業(yè)務(wù)流程管理一般包括流程定義、流程模板生成、流程執(zhí)行等過程。其中,流程執(zhí)行主要是根據(jù)流程模板的定義生成流程實(shí)例。而現(xiàn)有技術(shù)中,用戶的一次工作項(xiàng)提交操作,需要對(duì)流程實(shí)例的多個(gè)對(duì)象做多次更新操作,而流程實(shí)例數(shù)據(jù)通常同步保存在數(shù)據(jù)庫中,造成以下兩個(gè)問題
一是由于流程實(shí)例數(shù)據(jù)經(jīng)常變化,將其同步保存在數(shù)據(jù)庫中會(huì)給系統(tǒng)帶來很大的系統(tǒng)開銷,從而使系統(tǒng)性能降低;
二是由于流程實(shí)例數(shù)據(jù)大量的插入、更新操作,直接訪問數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù)會(huì)給數(shù)據(jù)庫系統(tǒng)造成巨大的壓力。而數(shù)據(jù)庫一般存放在磁盤中,過多的頻繁訪問則會(huì)導(dǎo)致系統(tǒng)響應(yīng)時(shí)間變長、性能降低等問題。發(fā)明內(nèi)容
通過業(yè)務(wù)分析,發(fā)現(xiàn)流程實(shí)例數(shù)據(jù)同步保存是不必要的,只要在需要時(shí)同步到數(shù)據(jù)庫中即可;另外,由于數(shù)據(jù)庫中的數(shù)據(jù)存在磁盤上,訪問其數(shù)據(jù)不如直接訪問緩存中的數(shù)據(jù)更為直接、迅速,且能解決直接訪問數(shù)據(jù)庫效率低的問題。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種流程實(shí)例數(shù)據(jù)處理方法和裝置, 通過將流程實(shí)例數(shù)據(jù)保存在緩存中并異步持久化至數(shù)據(jù)庫中,提高了工作流引擎性能,降低了系統(tǒng)響應(yīng)時(shí)間。
一方面,本發(fā)明實(shí)施例提供了一種流程實(shí)例數(shù)據(jù)處理方法,所述方法包括
接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù);
將所述流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互;
設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。
優(yōu)選的,當(dāng)出現(xiàn)以下任一情況時(shí),確定滿足預(yù)設(shè)的第一觸發(fā)條件
當(dāng)預(yù)設(shè)的同步時(shí)刻到達(dá)時(shí);
當(dāng)節(jié)點(diǎn)實(shí)例結(jié)束時(shí);
當(dāng)流程實(shí)例結(jié)束時(shí)。
優(yōu)選的,在接收工作流接口調(diào)用操作后,所述方法還包括
根據(jù)所述接口調(diào)用操作生成預(yù)設(shè)格式的指令信息;
保存所述指令信息以及所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系。
優(yōu)選的,所述方法還包括
當(dāng)發(fā)生系統(tǒng)重啟時(shí)或發(fā)生系統(tǒng)故障時(shí),獲取所述指令信息;
根據(jù)所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系,生成與所述指令信息對(duì)應(yīng)的接口調(diào)用操作;
根據(jù)所述接口調(diào)用操作進(jìn)入生成流程實(shí)例數(shù)據(jù)的步驟。
優(yōu)選的,在獲取所述指令信息之前,所述方法還包括
進(jìn)一步判斷是否存在未同步到數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù),如果存在,獲取所述指令fe息。
優(yōu)選的,所述方法還包括
當(dāng)與所述接口調(diào)用操作對(duì)應(yīng)的流程實(shí)例數(shù)據(jù)從緩存中同步到數(shù)據(jù)庫時(shí),刪除與所述接口調(diào)用操作對(duì)應(yīng)的指令信息。
另一方面,本發(fā)明實(shí)施例還公開了一種流程實(shí)例數(shù)據(jù)處理裝置,所述裝置包括
流程引擎模塊,用于接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù);當(dāng)用戶執(zhí)行工作流引擎操作時(shí),與緩存模塊進(jìn)行數(shù)據(jù)交互;
緩存模塊,用于將所述流程實(shí)例數(shù)據(jù)保存在緩存中;
同步模塊,用于設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí), 將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。
優(yōu)選的,所述同步模塊在出現(xiàn)以下任一情況時(shí)確定滿足預(yù)設(shè)的第一觸發(fā)條件
當(dāng)預(yù)設(shè)的同步時(shí)刻到達(dá)時(shí);
當(dāng)節(jié)點(diǎn)實(shí)例結(jié)束時(shí);
當(dāng)流程實(shí)例結(jié)束時(shí)。
優(yōu)選的,所述裝置還包括
轉(zhuǎn)換模塊,用于根據(jù)所述接口調(diào)用操作生成預(yù)設(shè)格式的指令信息;
指令數(shù)據(jù)庫,用于保存所述指令信息以及所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系。
優(yōu)選的,所述轉(zhuǎn)換模塊還用于當(dāng)發(fā)生系統(tǒng)重啟時(shí)或發(fā)生系統(tǒng)故障時(shí),從所述指令數(shù)據(jù)庫中獲取所述指令信息;根據(jù)所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系,生成與所述指令信息對(duì)應(yīng)的接口調(diào)用操作,進(jìn)入流程引擎模塊。
優(yōu)選的,所述裝置還包括
判斷模塊,用于進(jìn)一步判斷是否存在未同步到數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù),如果存在,進(jìn)入轉(zhuǎn)換模塊;
第一刪除單元,用于當(dāng)與所述接口調(diào)用操作對(duì)應(yīng)的流程實(shí)例數(shù)據(jù)從緩存中同步到數(shù)據(jù)庫時(shí),刪除與所述接口調(diào)用操作對(duì)應(yīng)的指令信息。
本發(fā)明實(shí)施例能夠達(dá)到的有益效果為本發(fā)明實(shí)施例提供的方法,通過接收工作接口調(diào)用操作,根據(jù)接口調(diào)用操作生成相應(yīng)的流程實(shí)例數(shù)據(jù),并將流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互。設(shè)置監(jiān)測(cè)任務(wù),當(dāng)監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。由于將流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互,大大提高了工作流引擎的性能,降低了系統(tǒng)響應(yīng)時(shí)間。另外,設(shè)置監(jiān)測(cè)任務(wù),當(dāng)滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存,以保持緩存與數(shù)據(jù)庫之間的數(shù)據(jù)同步。
再一方面,本發(fā)明提供的實(shí)施例在接收工作流接口調(diào)用操作后,將接口調(diào)用操作轉(zhuǎn)換成指令信息,并保存所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系,當(dāng)出現(xiàn)意外重啟或當(dāng)機(jī)時(shí),即可載入所述指令信息以生成相應(yīng)的接口調(diào)用操作,并執(zhí)行接口調(diào)用操作,從而達(dá)到重新恢復(fù)流程實(shí)例緩存數(shù)據(jù)的結(jié)果,有效地解決了系統(tǒng)意外當(dāng)機(jī)后帶來的數(shù)據(jù)丟失的問題。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的流程實(shí)例數(shù)據(jù)處理方法第一實(shí)施例流程圖2為本發(fā)明提供的流程實(shí)例數(shù)據(jù)處理方法第二實(shí)施例流程圖3為本發(fā)明提供的異步持久化方法示意圖4為本發(fā)明提供的流程實(shí)例數(shù)據(jù)處理裝置第一實(shí)施例示意圖5為本發(fā)明提供的流程實(shí)例數(shù)據(jù)處理裝置第二實(shí)施例示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種流程實(shí)例數(shù)據(jù)處理方法和裝置,通過將流程實(shí)例數(shù)據(jù)保存在緩存中并異步持久化至數(shù)據(jù)庫中,提高了工作流引擎性能,降低了系統(tǒng)響應(yīng)時(shí)間。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
參見圖1,為本發(fā)明提供的流程實(shí)例數(shù)據(jù)處理方法第一實(shí)施例流程圖,所述方法包括
S101,接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù)。
一般而言,流程的執(zhí)行過程主要是根據(jù)流程模板的定義生成流程實(shí)例。在本發(fā)明實(shí)施例中,用戶通過用戶接口調(diào)用工作流接口,這時(shí),接收用戶的工作流接口調(diào)用操作,解析預(yù)先設(shè)置的與所述工作流接口調(diào)用對(duì)應(yīng)的流程模板,根據(jù)流程模板生成流程實(shí)例數(shù)據(jù)。
S102,將所述流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互。
現(xiàn)有技術(shù)中,流程實(shí)例數(shù)據(jù)存放在數(shù)據(jù)庫中,數(shù)據(jù)庫通常存放在磁盤中。由于流程實(shí)例數(shù)據(jù)是一類動(dòng)態(tài)數(shù)據(jù),需要進(jìn)行大量的、頻繁的讀寫操作,直接通過磁盤訪問數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù)會(huì)給數(shù)據(jù)庫系統(tǒng)造成巨大的壓力。另一方面,通過磁盤訪問數(shù)據(jù)庫中的數(shù)據(jù),訪問速度也較低,導(dǎo)致系統(tǒng)響應(yīng)時(shí)間過長,性能降低。而在本發(fā)明實(shí)施例中,流程實(shí)例數(shù)據(jù)是存放在緩存中的,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),工作流引擎模塊直接與緩存中的數(shù)據(jù)進(jìn)行交互。一般的,工作流引擎操作可以為執(zhí)行具體的流程創(chuàng)建、工作項(xiàng)提交以及流程駁回等邏輯操作。在本發(fā)明實(shí)施例中,由于數(shù)據(jù)存放在緩存中,因此訪問更加直接、迅速,降低了系統(tǒng)響應(yīng)時(shí)間,且能解決直接訪問數(shù)據(jù)庫效率低的問題。
S103,設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。
具體的,預(yù)設(shè)的第一觸發(fā)條件可以包括以下幾種情況
(1)當(dāng)預(yù)設(shè)的同步時(shí)刻到達(dá)時(shí)
設(shè)置定時(shí)監(jiān)測(cè)任務(wù),當(dāng)?shù)竭_(dá)預(yù)設(shè)的同步時(shí)刻時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。進(jìn)行同步的時(shí)刻可以預(yù)先設(shè)定,如每天M:oo點(diǎn)進(jìn)行同步處理。由于這種同步并不是實(shí)時(shí)進(jìn)行的,因此,又稱為異步持久化。
(2)當(dāng)節(jié)點(diǎn)實(shí)例結(jié)束時(shí)
前面提到,流程的執(zhí)行過程主要是根據(jù)流程模板的定義生成流程實(shí)例。在一個(gè)工作流執(zhí)行過程中,一般會(huì)涉及多個(gè)節(jié)點(diǎn)。在流程的執(zhí)行過程中,根據(jù)流程目標(biāo)中定義的節(jié)點(diǎn)、上下文環(huán)境等創(chuàng)建當(dāng)前的節(jié)點(diǎn)實(shí)例,當(dāng)該節(jié)點(diǎn)實(shí)例運(yùn)行結(jié)束后,再創(chuàng)建下一個(gè)節(jié)點(diǎn)實(shí)例。舉例進(jìn)行說明,例如對(duì)一個(gè)業(yè)務(wù)審批的工作流來說,涉及提交業(yè)務(wù)審批、業(yè)務(wù)部門領(lǐng)導(dǎo)簽字、總經(jīng)理簽字等三個(gè)環(huán)節(jié),每一個(gè)環(huán)節(jié)可以視為一個(gè)流程節(jié)點(diǎn)。當(dāng)完成一個(gè)具體環(huán)節(jié)時(shí),相對(duì)應(yīng)的流程節(jié)點(diǎn)實(shí)例結(jié)束。因此,可以設(shè)置監(jiān)測(cè)任務(wù),用于監(jiān)測(cè)當(dāng)前工作流的節(jié)點(diǎn)實(shí)例,當(dāng)判斷當(dāng)前節(jié)點(diǎn)的實(shí)例運(yùn)行結(jié)束時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中保存。
(3)當(dāng)流程實(shí)例結(jié)束時(shí)
具體的,也可以根據(jù)具體的業(yè)務(wù)場(chǎng)景,選擇當(dāng)流程實(shí)例結(jié)束時(shí),進(jìn)行異步持久化處理,即將緩存中的數(shù)據(jù)同步到數(shù)據(jù)庫中。
這里,儲(chǔ)存實(shí)例數(shù)據(jù)的數(shù)據(jù)庫可以是關(guān)系數(shù)據(jù)庫。具體實(shí)現(xiàn)時(shí),從緩存中遍歷路程實(shí)例數(shù)據(jù),獲取需要進(jìn)行同步的數(shù)據(jù),將緩存中的實(shí)例數(shù)據(jù)轉(zhuǎn)換成SQL語句發(fā)給關(guān)系型數(shù)據(jù)庫進(jìn)行保存。將已同步到數(shù)據(jù)庫到流程實(shí)例數(shù)據(jù)從緩存中刪除,以節(jié)省緩存空間,提高數(shù)據(jù)訪問效率。
在本發(fā)明提供的第一實(shí)施例中,由于將流程實(shí)例數(shù)據(jù)保存在緩存中,在當(dāng)用戶執(zhí)行工作流引擎操作時(shí),工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互,大大提高了工作流引擎的性能,降低了系統(tǒng)響應(yīng)時(shí)間。另一方面,僅在需要的時(shí)候,將流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中,以保持緩存與數(shù)據(jù)庫之間的數(shù)據(jù)同步,降低了系統(tǒng)開銷。
參見圖2,為本發(fā)明實(shí)施例提供的流程實(shí)例數(shù)據(jù)處理方法第二實(shí)施例流程圖。
S201,接收工作流接口調(diào)用操作。
用戶的流程操作最普遍的為發(fā)起新的流程以及提交工作項(xiàng),當(dāng)用戶執(zhí)行引擎操作后,工作流引擎一方面將用戶的接口調(diào)用操作轉(zhuǎn)換為指令保存,一方面生成流程實(shí)例數(shù)據(jù), 將其保存在緩存中,并與緩存中的數(shù)據(jù)交互,快速將結(jié)果返回給用戶。
S202,執(zhí)行引擎操作,生成流程實(shí)例數(shù)據(jù)。
S203,將所述流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互。
S204,根據(jù)接口調(diào)用操作生成預(yù)設(shè)格式的指令信息。
在本發(fā)明實(shí)施例中,當(dāng)用戶調(diào)用工作流接口時(shí),將接口調(diào)用操作轉(zhuǎn)換成特定命令格式的指令信息并進(jìn)行保存。
S205,保存指令信息以及指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系。
具體的,可以設(shè)置一個(gè)指令數(shù)據(jù)庫保存指令信息,指令數(shù)據(jù)庫可以是關(guān)系型數(shù)據(jù)庫或其他類型的數(shù)據(jù)庫。也可以通過文件或其他存儲(chǔ)方式保存指令信息。為了能夠?qū)⒅噶钚畔⒅匦陆馕鰹橛脩舻慕涌谡{(diào)用操作,指令信息一般包括以下內(nèi)容
(1)操作類型包括發(fā)起流程、任務(wù)提交、流程駁回等類型。
(2)操作用戶當(dāng)前流程的發(fā)起者或者任務(wù)提交者。具體可以保存用戶的標(biāo)識(shí)。
(3)操作時(shí)間發(fā)生當(dāng)前操作的時(shí)間。
(4)操作對(duì)象具體可以保存流程模板ID、任務(wù)ID或者流程實(shí)例ID等。
(5)對(duì)象類型具體可以包括流程模板、流程實(shí)例、節(jié)點(diǎn)實(shí)例、工作項(xiàng)等。
(6)指令狀態(tài)用于表明當(dāng)前指令的處理狀態(tài),如待處理、正在處理、處理異常。具體的,可以用標(biāo)記表明處理狀態(tài),例如,用“0”表示待處理,用“1”表示處理完成,用“2”表示處理異常等。
具體可以如下表所示
表 權(quán)利要求
1.一種流程實(shí)例數(shù)據(jù)處理方法,其特征在于,所述方法包括 接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù);將所述流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互;設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)出現(xiàn)以下任一情況時(shí),確定滿足預(yù)設(shè)的第一觸發(fā)條件當(dāng)預(yù)設(shè)的同步時(shí)刻到達(dá)時(shí); 當(dāng)節(jié)點(diǎn)實(shí)例結(jié)束時(shí); 當(dāng)流程實(shí)例結(jié)束時(shí)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在接收工作流接口調(diào)用操作后,所述方法還包括根據(jù)所述接口調(diào)用操作生成預(yù)設(shè)格式的指令信息;保存所述指令信息以及所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系。
4.根據(jù)權(quán)利要求1或3所述的方法,其特征在于,所述方法還包括 當(dāng)發(fā)生系統(tǒng)重啟時(shí)或發(fā)生系統(tǒng)故障時(shí),獲取所述指令信息;根據(jù)所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系,生成與所述指令信息對(duì)應(yīng)的接口調(diào)用操作;根據(jù)所述接口調(diào)用操作進(jìn)入生成流程實(shí)例數(shù)據(jù)的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在獲取所述指令信息之前,所述方法還包括進(jìn)一步判斷是否存在未同步到數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù),如果存在,獲取所述指令信息。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括當(dāng)與所述接口調(diào)用操作對(duì)應(yīng)的流程實(shí)例數(shù)據(jù)從緩存中同步到數(shù)據(jù)庫時(shí),刪除與所述接口調(diào)用操作對(duì)應(yīng)的指令信息。
7.—種流程實(shí)例數(shù)據(jù)處理裝置,其特征在于,所述裝置包括流程引擎模塊,用于接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù);當(dāng)用戶執(zhí)行工作流引擎操作時(shí),與緩存模塊進(jìn)行數(shù)據(jù)交互; 緩存模塊,用于將所述流程實(shí)例數(shù)據(jù)保存在緩存中;同步模塊,用于設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述同步模塊在出現(xiàn)以下任一情況時(shí)確定滿足預(yù)設(shè)的第一觸發(fā)條件當(dāng)預(yù)設(shè)的同步時(shí)刻到達(dá)時(shí); 當(dāng)節(jié)點(diǎn)實(shí)例結(jié)束時(shí); 當(dāng)流程實(shí)例結(jié)束時(shí)。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括轉(zhuǎn)換模塊,用于根據(jù)所述接口調(diào)用操作生成預(yù)設(shè)格式的指令信息;指令數(shù)據(jù)庫,用于保存所述指令信息以及所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系。
10.根據(jù)權(quán)利要求7或9所述的裝置,其特征在于,所述轉(zhuǎn)換模塊還用于當(dāng)發(fā)生系統(tǒng)重啟時(shí)或發(fā)生系統(tǒng)故障時(shí),從所述指令數(shù)據(jù)庫中獲取所述指令信息,根據(jù)所述指令信息與接口調(diào)用操作的對(duì)應(yīng)關(guān)系,生成與所述指令信息對(duì)應(yīng)的接口調(diào)用操作,進(jìn)入流程引擎模塊。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括判斷模塊,用于進(jìn)一步判斷是否存在未同步到數(shù)據(jù)庫中的流程實(shí)例數(shù)據(jù),如果存在,進(jìn)入轉(zhuǎn)換模塊;第一刪除單元,用于當(dāng)與所述接口調(diào)用操作對(duì)應(yīng)的流程實(shí)例數(shù)據(jù)從緩存中同步到數(shù)據(jù)庫時(shí),刪除與所述接口調(diào)用操作對(duì)應(yīng)的指令信息。
全文摘要
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是一種流程實(shí)例數(shù)據(jù)處理方法和裝置,所述方法包括接收工作流接口調(diào)用操作,根據(jù)所述接口調(diào)用操作生成流程實(shí)例數(shù)據(jù);將所述流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),所述工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互;設(shè)置監(jiān)測(cè)任務(wù),當(dāng)所述監(jiān)測(cè)任務(wù)確定滿足預(yù)設(shè)的第一觸發(fā)條件時(shí),將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中進(jìn)行保存。由于將流程實(shí)例數(shù)據(jù)保存在緩存中,當(dāng)用戶執(zhí)行工作流引擎操作時(shí),工作流引擎直接與緩存數(shù)據(jù)進(jìn)行交互,大大提高了工作流引擎的性能,降低了系統(tǒng)響應(yīng)時(shí)間。另外,設(shè)置監(jiān)測(cè)任務(wù),滿足預(yù)設(shè)條件時(shí)將緩存中的流程實(shí)例數(shù)據(jù)同步到數(shù)據(jù)庫中保存,以保持緩存與數(shù)據(jù)庫之間的數(shù)據(jù)同步。
文檔編號(hào)G06Q10/06GK102521712SQ201110445830
公開日2012年6月27日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者劉作坤, 紀(jì)勇, 趙振國 申請(qǐng)人:東軟集團(tuán)股份有限公司