欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

工作流異常處理方法及系統(tǒng)與流程

文檔序號:11063819閱讀:578來源:國知局
工作流異常處理方法及系統(tǒng)與制造工藝

本發(fā)明涉及計算機技術領域,尤其涉及一種工作流異常處理方法及系統(tǒng)。



背景技術:

工作流(Work Flow)是對工作流程及其各操作步驟之間業(yè)務規(guī)則的抽象、概括、描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規(guī)則在計算機中以恰當?shù)哪P瓦M行表示并對其實施計算。

其中,一個工作流包括一組任務(Task)及它們的相互順序關系,還包括流程及任務的啟動和終止條件,以及對每個任務的描述。

在云計算管理項目中,很多管理流程是管理進程之間通過消息方式交互的過程,比如管理主進程發(fā)送消息通知虛擬機管理進程將虛擬機開機,管理主進程收到消息后執(zhí)行開機命令,然后給管理主進程發(fā)消息通知開機成功,該過程可以抽象為一個AB模型,典型場景是基于非可靠消息的分布式資源管理,其中,AB模型的定義為:AB之間采用非可靠消息交互,且A需要關注或管理B當下操作結果以實現(xiàn)資源管理,及關注操作的進度以實現(xiàn)狀態(tài)管理。

目前,在云計算管理流程中很少是AB這種簡單模型,一般都是包含很多個步驟,且每個步驟都是AB模型,如果要硬編碼每一個步驟的消息處理流程,代碼將非常復雜,為了實現(xiàn)管理流程抽象化,能夠用一套代碼來保證管理流程的執(zhí)行,我們在云計算管理流程中引入工作流的概念。

請參閱圖1,圖1為部署虛擬機的流程的工作流,使用工作流來描述并執(zhí)行這一流程,該工作流中包含4個任務:

1、管理主進程為虛擬機分配物理機;

2、存儲管理進程為虛擬機分配云硬盤;

3、網絡管理進程為虛擬機分配網絡資源;

4、虛擬機管理進程創(chuàng)建虛擬機;

其中,以上4個任務運行在不同的管理節(jié)點即物理機上,每一個任務都是一個獨立的消息單元。

在軟件編碼模型中,在用工作流來抽象編碼上述的流程時,可大大簡化復雜業(yè)務流程的實現(xiàn),減少編碼時的重復勞動。

然而,在云計算管理流程中引入工作流的概念之后,還需要考慮工作流中的任務執(zhí)行失敗的情況,由于現(xiàn)有技術中的工作流的任務失敗只能回退一個任務,使得并不適用于在云計算管理流程中的任務失敗的情況,因為在云計算管理流程中,還需要考慮任務的失敗處理相關關聯(lián)的情況,及同一個任務,處于不同的流程中,或處于同一流程的不同位置,其失敗處理都可能是不同的的情況。因此,需要針對每一個任務出現(xiàn)執(zhí)行失敗的情況設置其失敗處理的過程,將導致任務失敗的處理過程非常復雜且難以實現(xiàn)。

上述內容僅用于輔助理解本發(fā)明的技術方案,并不代表承認上述內容是現(xiàn)有技術。



技術實現(xiàn)要素:

本發(fā)明的主要目的在于提供一種工作流異常處理方法及系統(tǒng),用于解決在軟件編碼模型中使用工作流模型時,若工作流中的任務出現(xiàn)異常,將造成該異常的處理流程無比復雜的問題。

為實現(xiàn)上述目的,本發(fā)明提供的一種工作流異常處理方法,包括:

依次執(zhí)行工作流中的第一任務,且在執(zhí)行所述第一任務之前,已為所述工作流對應的回退工作流中,與所述第一任務具有一一對應關系的第二任務設置任務標識符,其中,所述第二任務為所述第一任務的回退任務;

若在執(zhí)行所述工作流中的第一任務時出現(xiàn)異常,則根據(jù)所述任務標識符依次執(zhí)行所述回退工作流中的第二任務。

優(yōu)選地,所述執(zhí)行所述回退工作流中的第二任務,包括:

判斷所述第二任務是否包含所述任務標識符;

當所述第二任務包含所述任務標識符時,執(zhí)行所述第二任務;

當所述第二任務未包含所述任務標識符時,跳過所述第二任務。

優(yōu)選地,所述執(zhí)行所述第二任務,包括:

調用所述第二任務的回退接口,并利用所述回退接口運行所述第二任務的任務補償代碼,所述任務補償代碼用于實現(xiàn)與所述第二任務一一對應的第一任務的回退操作。

優(yōu)選地,所述執(zhí)行工作流中的第一任務之前還包括:

確定在所述回退工作流中與所述第一任務具有一一對應關系的第二任務;

為所述第二任務設置所述任務標識符。

優(yōu)選地,所述方法還包括:若在執(zhí)行所述工作流中的第一任務時出現(xiàn)異常,則停止執(zhí)行所述工作流中的第一任務,啟動所述回退工作流的執(zhí)行。

為了解決上述的技術問題,本發(fā)明還提供一種工作流異常處理系統(tǒng)包括:

任務執(zhí)行模塊,用于依次執(zhí)行工作流中的第一任務,且在執(zhí)行所述第一任務之前,已為所述工作流對應的回退工作流中,與所述第一任務具有一一對應關系的第二任務設置任務標識符,其中,所述第二任務為所述第一任務的回退任務;

回退執(zhí)行模塊,用于若在執(zhí)行所述工作流中的第一任務時出現(xiàn)異常,則根據(jù)所述任務標識符依次執(zhí)行所述回退工作流中的第二任務。

優(yōu)選地,所述回退執(zhí)行模塊包括:

判斷模塊,用于判斷所述第二任務是否包含所述任務標識符;

第一執(zhí)行模塊,用于當所述第二任務包含所述任務標識符時,執(zhí)行所述第二任務;

跳過模塊,用于當所述第二任務未包含所述任務標識符時,跳過所述第二任務。

優(yōu)選地,所述第一執(zhí)行模塊用于:

當所述第二任務包含所述任務標識符時,調用所述第二任務的回退接口,并利用所述回退接口運行所述第二任務的任務補償代碼,所述任務補償代碼用于實現(xiàn)與所述第二任務一一對應的第一任務的回退操作。

優(yōu)選地,所述系統(tǒng)還包括:

確定模塊,用于確定在所述回退工作流中與所述第一任務具有一一對應關系的第二任務;

標識符設置模塊,用于為所述第二任務設置所述任務標識符;

第二執(zhí)行模塊,用于執(zhí)行所述第一任務。

優(yōu)選地,所述系統(tǒng)還包括:

停止及啟動模塊,用于若在執(zhí)行所述工作流中的第一任務時出現(xiàn)異常,則停止執(zhí)行所述工作流中的第一任務,啟動所述回退工作流的執(zhí)行。

本發(fā)明提供一種工作流異常處理方法及系統(tǒng),所能實現(xiàn)的有益效果是:依次執(zhí)行工作流中的第一任務,且在執(zhí)行第一任務之前,為該工作流對應的回退工作流中,與第一任務具有一一對應關系的第二任務設置任務標識符,其中,第二任務為第一任務的回退任務,且若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。通過設置工作流對應的回退工作流,且回退工作流中的第二任務為其在第一工作流中一一對應的第一任務的回退工作流,使得能夠通過回退整個工作流的方式處理工作流中任意任務出現(xiàn)異常的問題,能夠有效的降低工作流異常時的處理復雜度,更容易實現(xiàn)。

附圖說明

圖1為部署虛擬機的流程的工作流的示意圖;

圖2為本發(fā)明工作流異常處理方法第一實施例的流程示意圖;

圖3為本發(fā)明圖1所示的工作流的回退工作流的示意圖;

圖4為圖2中執(zhí)行回退工作流的第二任務的步驟的細化流程示意圖;

圖5為圖2中執(zhí)行工作流中的第一任務步驟之前的流程的示意圖;

圖6為本發(fā)明工作流異常處理系統(tǒng)的第一實施例的功能模塊示意圖;

圖7為本發(fā)明圖6中的回退執(zhí)行模塊602的細化功能模塊示意圖;

圖8為本發(fā)明圖6中工作流異常處理系統(tǒng)還包括的功能模塊示意圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。

具體實施方式

應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明實施例提供一種工作流異常處理方法,該方法中,工作流異常處理系統(tǒng)將依次執(zhí)行工作流中的第一任務,且每次在執(zhí)行第一任務之前,已為該工作流對應的回退工作流中,與第一任務具有一一對應關系的第二任務設置任務標識符,其中,第二任務為第一任務的回退任務,且若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。通過設置工作流對應的回退工作流,且回退工作流中的第二任務為其 在第一工作流中一一對應的第一任務的回退工作流,使得能夠通過設置回退工作流的方式處理與其對應的工作流中任意任務執(zhí)行時出現(xiàn)的異常,能夠有效的降低工作流異常的處理復雜度,更容易實現(xiàn)。

優(yōu)選的,本發(fā)明實施例提供的工作流異常處理方法及系統(tǒng)可優(yōu)選使用在軟件編程模型中,使得能夠通過工作流的方式描述軟件編碼流程,并實現(xiàn)對其異常情況的快速處理。

請參閱圖2,圖2為本發(fā)明第一實施例中的工作流異常處理方法,該方法包括:

步驟201、依次執(zhí)行工作流中的第一任務,且在執(zhí)行第一任務之前,已為工作流對應的回退工作流中,與第一任務具有一一對應關系的第二任務設置任務標識符,其中,第二任務為第一任務的回退任務;

在本發(fā)明實施例中,工作流異常處理系統(tǒng)可以是工作流系統(tǒng)中的一部分,也可以是工作流系統(tǒng),該工作流異常處理系統(tǒng)用于在工作流執(zhí)行過程中出現(xiàn)異常時,對該異常情況進行處理。

在本發(fā)明實施例中,工作流異常處理系統(tǒng)(以下簡稱:系統(tǒng))中預先已建立了待執(zhí)行的工作流及該工作流對應的回退工作流,其中,該待執(zhí)行的工作流及該工作流對應的回退工作流均是由編程人員通過編碼的方式創(chuàng)建的。

請參閱圖1,為本發(fā)明實施例中工作流的示意圖,其中,圓圈內的編號表示工作流中的任務,箭頭方向表示工作流中的任務的執(zhí)行順序。

在本發(fā)明實施例中,編程人員創(chuàng)建工作流和該回退工作流的具體過程為:先創(chuàng)建工作流,并針對該工作流中的每一個任務設置該任務對應的回退任務,并將設置的回退任務按照其在工作流中的對應的任務執(zhí)行的方向的相反方向設置順序關系,得到該工作流的回退工作流。因此,工作流中的任務與其對應的回退工作流中的任務具有一一對應關系,且回退工作流中的任務為其在工作流中一一對應的任務的回退任務。

為了便于理解,請參閱圖3,為圖1所示的工作流的回退工作流,其中,回退工作流的任務可以用負號進行編號,具體的:

-1、管理主進程清理內存,釋放數(shù)據(jù)庫中待部署虛擬機占用的物理資源;

-2、存儲管理進程清理已分配給待部署虛擬機的物理資源;

-3、網絡管理進程清理已分配給待部署虛擬機的網絡資源;

-4、虛擬機管理進程釋放對存儲資源和網絡資源的占用,清理內存,抹除臨時文件等等。

其中,任務-1為圖1所示的任務1的回退過程,任務-2為圖1所示的任務2的回退過程,任務-3為圖1所示的任務3的回退過程,任務-4為圖1所示的任務4的回退過程。且圖1所示的工作流中的任務依次執(zhí)行的方向為其箭頭所指的方向,即1<2,3<4,其對應的回退工作流中的任務的執(zhí)行方向也為其箭頭所指的方向,即-4<-3,-2<-1。

需要說明的是,圖1中的工作流及圖2中的回退工作流的表示方式為基于有向五環(huán)圖的定點活動(Activity On Vertex,AOV)的工作流模型的表示為例的,在AOV圖中,頂點是表示活動的,則在本發(fā)明實施例中,以AOV表示的工作流中活動則表示任務,有向邊(箭頭)表示任務執(zhí)行的先后次序。

需要說明的是,在本發(fā)明實施例中,若工作流中的任務沒必要設置回退任務,則在該工作流對應的回退工作流中,可設置與該工作流中的任務一一對應的回退任務為空,即在執(zhí)行該回退工作流時,可以跳過不執(zhí)行該任務,且繼續(xù)執(zhí)行下一個任務。例如:若圖1所示的工作流中的任務4不產生臨時文件,則其回退工作流中的任務-4為空。

在本發(fā)明實施例中,系統(tǒng)在添加工作流及其對應的回退工作流之后,將依次執(zhí)行該工作流中的第一任務,且在執(zhí)行該第一任務之前,已為該工作流對應的回退工作流中,與該第一任務具有一一對應關系的第二任務設置任務標識符,其中,該第二任務為該第一任務的回退任務。

其中,任務標識符是在執(zhí)行工作流中的第一任務之前就對該第一任務對應的第二任務進行設置的,用于標識該第二任務對應的第一任務已經進入過執(zhí)行狀態(tài),便于在執(zhí)行該工作流的回退工作流時,通過回退工作流中的第二任務的任務標識符確定哪些第二任務需要執(zhí)行。

其中,任務標識符的設置可以有很多種方式,例如,回退工作流中每一個任務都有一個狀態(tài)位,回退工作流在未執(zhí)行之前,其所有的任務的狀態(tài)位均為暫停狀態(tài),在回退工作流中的第二任務對應的工作流中的第一任務執(zhí)行之前,系統(tǒng)將該第二任務中暫停狀態(tài)取消,使得其狀態(tài)位為暫停狀態(tài)取消狀態(tài),系統(tǒng)也可將該狀態(tài)位所標識的不同狀態(tài)作為任務標識符進行使用,當該第二任務的狀態(tài)位為暫停狀態(tài)取消狀態(tài)時,確定該第二任務已設置任務標識 符,當該第二任務的狀態(tài)位為暫停狀態(tài)時,確定該第二認為未設置任務標識符。例如,可以在第二任務設置比特信息位,若該比特信息位為0,則表示未設置任務標識符,若該比特信息位為1,則表示已經設置任務標識符。

其中,工作流中的任務均稱為第一任務,其對應的回退工作流的任務均稱為第二任務,其中,“第一任務”和“第二任務”中的“第一”和“第二”僅僅用于區(qū)別該兩個任務是來自不同的工作流,并不對工作流中的任務本身造成限定。

步驟202、若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則根據(jù)任務標識符依次執(zhí)行回退工作流的第二任務。

在本發(fā)明實施例中,若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則系統(tǒng)將根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。

其中,執(zhí)行工作流中的第一任務時出現(xiàn)異常可以是第一任務發(fā)出請求后在預置時間段內未收到響應,或者收到拒絕該請求的響應,或者收到請求錯誤的響應等等。

在本發(fā)明實施例中,系統(tǒng)在確定執(zhí)行工作流中的第一任務時出現(xiàn)異常后,將停止執(zhí)行工作流中的第一任務,且將啟動該工作流對應的回退工作流的執(zhí)行,使得系統(tǒng)根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。

在本發(fā)明實施例中,系統(tǒng)依次執(zhí)行工作流中的第一任務,且在執(zhí)行該第一任務之前,為工作流對應的回退工作流中,與該第一任務具有一一對應關系的第二任務設置任務標識符,其中,該第二任務為第一任務的回退任務,若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。通過上述的方式,為工作流建立與其對應的回退工作流,且在執(zhí)行工作流的第一任務時,通過設置其在回退工作流中一一對應的第二任務的任務標識符,使得能夠確定在回退工作流中有哪些第二任務是需要執(zhí)行的,且在執(zhí)行工作流中的第一任務出現(xiàn)異常時,根據(jù)任務標識符執(zhí)行回退工作流,能夠通過執(zhí)行回退工作流的方式,實現(xiàn)對工作流的異常處理,且處理過程簡單,能夠有效降低工作流異常時的處理復雜度,且對于編程人員來說,能夠通過更加簡單的編程實現(xiàn)對工作流異常的處理,減輕編程人員的負擔。

請參閱圖4,為本發(fā)明圖2所示的第一實施例中的步驟202中的執(zhí)行回退工作流中的第二任務的細化流程示意圖,該細化流程具體包括:

步驟401、判斷第二任務是否包含任務標識符,若是,則執(zhí)行步驟402,若否,則執(zhí)行步驟403;

在本發(fā)明實施例中,系統(tǒng)在確定執(zhí)行的工作流中的第一任務出現(xiàn)異常后,將停止該工作流中的任務的執(zhí)行,且將啟動該工作流對應的回退工作流的執(zhí)行。

其中,系統(tǒng)在執(zhí)行回退工作流時,也將從該回退工作流的初始的任務開始執(zhí)行,并按照該回退工作流中的任務的執(zhí)行方向依次執(zhí)行任務。

在本發(fā)明實施例中,系統(tǒng)在執(zhí)行到回退工作流中的每一個第二任務時,都將判斷該第二任務是否包含任務標識符。

步驟402、執(zhí)行第二任務;

在本發(fā)明實施例中,系統(tǒng)在判斷待執(zhí)行的第二任務是否包含任務標識符后,當確定該第二任務包含任務標識符時,將執(zhí)行該第二任務。

其中,執(zhí)行該第二任務具體可以是調用該第二任務的回退接口,并利用該回退接口運行第二任務的任務補償代碼,該任務補償代碼用于實現(xiàn)與該第二任務一一對應的第一任務的回退操作。

步驟403、跳過第二任務。

在本發(fā)明實施例中,當系統(tǒng)確定第二任務未包含任務標識符時,將跳過該第二任務,其中,跳過該第二任務,即是指不執(zhí)行該第二任務,繼續(xù)執(zhí)行該第二任務的下一級任務。

需要說明的是,在本發(fā)明實施例中,編程人員在編寫工作流的回退工作流時,將編寫該回退工作流中的每一個第二任務的任務補償代碼,該任務補償代碼能夠實現(xiàn)與該第二任務對應的任務的回退操作,例如,若第一任務為存儲管理進程為虛擬機分配云硬盤,則該第一任務對應的第二任務的任務補償代碼能夠實現(xiàn)的功能為存儲管理進程清理已分配給待部署虛擬機的云硬盤。

需要說明的是,系統(tǒng)將按照步驟301至步驟303中描述的內容對回退工作流中的每一個第二任務都進行判斷及處理。

在本發(fā)明實施例中,詳細描述了基于任務標識符執(zhí)行回退工作流的過程,使得在執(zhí)行回退工作流中的第二任務時,能夠僅僅執(zhí)行已設置任務標識符的第二任務,且跳過未設置任務標識符的第二任務,能夠有效的實現(xiàn)回退工作 流的執(zhí)行,且匹配該回退工作流對應的工作流的執(zhí)行狀態(tài)。

請參閱圖5,為本發(fā)明第一實施例中的步驟201中的執(zhí)行工作流中的第一任務之前的細化流程,該細化流程包括:

步驟501、確定在回退工作流中與第一任務具有一一對應關系的第二任務;

在本發(fā)明實施例中,步驟501至步驟502中描述的內容是在執(zhí)行工作流的過程中,對每一個第一任務執(zhí)行之前都需要執(zhí)行的過程,且系統(tǒng)將從工作流中的初始的第一任務開始,依照工作流中的第一任務的執(zhí)行的先后順序,在每次執(zhí)行一個第一任務之前執(zhí)行步驟501至步驟502對應的內容。

在本發(fā)明實施例中,系統(tǒng)需要對工作流中的某一個第一任務進行執(zhí)行之前,將確定在回退工作流中與該第一任務具有一一對應關系的第二任務。

步驟502、設置第二任務的任務標識符。

在本發(fā)明實施例中,系統(tǒng)在確定與第一任務具有一一對應關系的第二任務之后,將為該第二任務設置任務標識符。

在本發(fā)明實施例中,系統(tǒng)在為第一任務具有一一對應關系的第二任務設置任務標識符之后,將執(zhí)行該第一任務。

具體的,執(zhí)行該第一任務具體可以為:調用該第一任務的任務接口,利用該任務接口運行該第一任務的任務代碼,其中,該任務代碼用于實現(xiàn)該第一任務。例如,若該第一任務為:網絡管理進程為虛擬機分配網絡資源,則該任務代碼即為通過編碼運行的方式實現(xiàn)網絡管理進程為虛擬機分配網絡資源的目的。

在本發(fā)明實施例中,通過在執(zhí)行工作流中的第一任務之前,為該第一任務在回退工作流中具有一一對應關系的第二任務設置任務標識符,使得在該工作流執(zhí)行出現(xiàn)異常時,能夠基于任務標識符執(zhí)行回退工作流,以實現(xiàn)對異常情況的快速處理,能夠有效降低異常處理的復雜度。且通過編寫回退工作流的方式處理異常情況,能夠有效簡化編程流程,減少編程人員的工作量。

為了更好的理解本發(fā)明實施例中的技術方案,下面將介紹具體的應用場景:

以圖1所示的工作流及圖3所示的回退工作流為例,其中,圖3所示的回退工作流為圖1所示的工作流的回退工作流。

其中,工作流的執(zhí)行順序為任務1、任務2和任務3、任務4,其回退工作流的執(zhí)行順序為任務-4、任務-2和任務-3、任務-1。

依次執(zhí)行工作流中的任務,在執(zhí)行任務1之前,為其回退工作流中具有一一對應關系的任務-1設置任務標識符,接著執(zhí)行任務1,若任務1執(zhí)行成功,接著,在執(zhí)行任務2和任務3之前,為其回退工作流中具有一一對應關系的任務-2和-3設置任務標識符,同時執(zhí)行任務2和任務3,若任務2和任務3執(zhí)行成功,接著,在執(zhí)行任務4之前,為其回退工作流中的任務-4設置任務標識符,執(zhí)行任務4,若任務4執(zhí)行出現(xiàn)異常,則停止工作流的執(zhí)行,并啟動器回退工作流。

系統(tǒng)確定任務-4具有任務標識符,則執(zhí)行任務-4,接著系統(tǒng)判斷任務-2和-3是否包含任務標識符,且確定任務-2和任務-3具有任務標識符,則執(zhí)行任務-2和-3,且系統(tǒng)確定任務-1具有任務標識符,則執(zhí)行任務-1,以完成對工作流執(zhí)行異常的處理。

在本發(fā)明實施例中,通過設置與工作流對應的回退工作流,且在執(zhí)行工作流的過程中,設置其執(zhí)行的任務與回退工作流中具有一一對應關系的任務的任務標識符,在工作流執(zhí)行出現(xiàn)異常時,基于任務標識符及回退工作流即可以完成對工作流異常的處理,處理流程簡單,且對于編程人員來說,僅僅設置一個對應的回退工作流就可以完成其對應的工作流中任意一個任務的異常情況的處理。

請參閱圖6,為本發(fā)明一種工作流異常處理系統(tǒng)的第一實施例的功能模塊,該工作流異常處理系統(tǒng)包括:

任務執(zhí)行模塊601,用于依次執(zhí)行工作流中的第一任務,且在執(zhí)行該第一任務之前,已為該工作流對應的回退工作流中,與該第一任務具有一一對應關系的第二任務設置任務標識符,其中,該第二任務為該第一任務的回退任務;

回退執(zhí)行模塊602,用于若在執(zhí)行該工作流中的第一任務時出現(xiàn)異常,則根據(jù)該任務標識符依次執(zhí)行該回退工作流中的第二任務。

此外,在回退執(zhí)行模塊602之前,還包括:

停止及啟動模塊603,用于若在執(zhí)行該工作流中的第一任務時出現(xiàn)異常,則停止執(zhí)行該工作流中的第一任務,啟動該回退工作流的執(zhí)行。

在本發(fā)明實施例中,工作流異常處理系統(tǒng)可以是工作流系統(tǒng)中的一部分,也可以是工作流系統(tǒng),該工作流異常處理系統(tǒng)用于在工作流執(zhí)行過程中出現(xiàn)異常時,對該異常情況進行處理。

在本發(fā)明實施例中,工作流異常處理系統(tǒng)(以下簡稱:系統(tǒng))中預先已建立了待執(zhí)行的工作流及該工作流對應的回退工作流,其中,該待執(zhí)行的工作流及該工作流對應的回退工作流均是由編程人員通過編碼的方式創(chuàng)建的。

請參閱圖1,為本發(fā)明實施例中工作流的示意圖,其中,圓圈內的編號表示工作流中的任務,箭頭方向表示工作流中的任務的執(zhí)行順序。

在本發(fā)明實施例中,編程人員創(chuàng)建工作流和該回退工作流的具體過程為:先創(chuàng)建工作流,并針對該工作流中的每一個任務設置該任務對應的回退任務,并將設置的回退任務按照其在工作流中的對應的任務執(zhí)行的方向的相反方向設置順序關系,得到該工作流的回退工作流。因此,工作流中的任務與其對應的回退工作流中的任務具有一一對應關系,且回退工作流中的任務為其在工作流中一一對應的任務的回退任務。

其中,任務標識符是在執(zhí)行工作流中的第一任務之前就對該第一任務對應的第二任務進行設置的,用于標識該第二任務對應的第一任務已經進入過執(zhí)行狀態(tài),便于在執(zhí)行該工作流的回退工作流時,通過回退工作流中的第二任務的任務標識符確定哪些第二任務需要執(zhí)行。

其中,任務標識符的設置可以有很多種方式,例如,回退工作流中每一個任務都有一個狀態(tài)位,回退工作流在未執(zhí)行之前,其所有的任務的狀態(tài)位均為暫停狀態(tài),在回退工作流中的第二任務對應的工作流中的第一任務執(zhí)行之前,系統(tǒng)將該第二任務中暫停狀態(tài)取消,使得其狀態(tài)位為暫停狀態(tài)取消狀態(tài),系統(tǒng)也可將該狀態(tài)位所標識的不同狀態(tài)作為任務標識符進行使用,當該第二任務的狀態(tài)位為暫停狀態(tài)取消狀態(tài)時,確定該第二任務已設置任務標識符,當該第二任務的狀態(tài)位為暫停狀態(tài)時,確定該第二認為未設置任務標識符。例如,可以在第二任務設置比特信息位,若該比特信息位為0,則表示未設置任務標識符,若該比特信息位為1,則表示已經設置任務標識符。

在本發(fā)明實施例中,系統(tǒng)中的任務執(zhí)行模塊601依次執(zhí)行工作流中的第一任務,且在執(zhí)行該第一任務之前,已為該工作流對應的回退工作流中,與該第一任務具有一一對應關系的第二任務設置任務標識符,其中,該第二任 務為該第一任務的回退任務;若在執(zhí)行該工作流中的第一任務時出現(xiàn)異常,則停止及啟動模塊603停止執(zhí)行該工作流中的第一任務,啟動該回退工作流的執(zhí)行,并由回退執(zhí)行模塊602根據(jù)該任務標識符依次執(zhí)行該回退工作流中的第二任務。

在本發(fā)明實施例中,系統(tǒng)依次執(zhí)行工作流中的第一任務,且在執(zhí)行該第一任務之前,為工作流對應的回退工作流中,與該第一任務具有一一對應關系的第二任務設置任務標識符,其中,該第二任務為第一任務的回退任務,若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則根據(jù)任務標識符依次執(zhí)行回退工作流中的第二任務。通過上述的方式,為工作流建立與其對應的回退工作流,且在執(zhí)行工作流的第一任務時,通過設置其在回退工作流中一一對應的第二任務的任務標識符,使得能夠確定在回退工作流中有哪些第二任務是需要執(zhí)行的,且在執(zhí)行工作流中的第一任務出現(xiàn)異常時,根據(jù)任務標識符執(zhí)行回退工作流,能夠通過執(zhí)行回退工作流的方式,實現(xiàn)對工作流的異常處理,且處理過程簡單,能夠有效降低工作流異常時的處理復雜度,且對于編程人員來說,能夠通過更加簡單的編程實現(xiàn)對工作流異常的處理,減輕編程人員的負擔。

請參閱圖7,為本發(fā)明圖6所示的第一實施例中的回退執(zhí)行模塊602的細化功能模塊,若在執(zhí)行工作流中的第一任務時出現(xiàn)異常,則對于回退工作流中的每一個第二任務,該回退執(zhí)行模塊602包括:

判斷模塊701,用于判斷該第二任務是否包含任務標識符;

第一執(zhí)行模塊702,用于當該第二任務包含該任務標識符時,執(zhí)行該第二任務;

跳過模塊703,用于當該第二任務未包含該任務標識符時,跳過該第二任務。

在本發(fā)明實施例中,該第一執(zhí)行模塊702用于:

當該第二任務包含該任務標識符時,調用該第二任務的回退接口,并利用該回退接口運行該第二任務的任務補償代碼,該任務補償代碼用于實現(xiàn)與該第二任務一一對應的第一任務的回退操作。

在本發(fā)明實施例中,在執(zhí)行回退工作流時,將對回退工作流中的每一個第二任務都執(zhí)行以下過程,包括:由判斷模塊701判斷該第二任務是否包含 該任務標識符,當判斷模塊701確定該第二任務包含該任務標識符時,第一執(zhí)行模塊702執(zhí)行該第二任務,當判斷模塊703確定該第二任務未包含該任務標識符時,跳過模塊703跳過該第二任務。

在本發(fā)明實施例中,詳細描述了基于任務標識符執(zhí)行回退工作流的過程,使得在執(zhí)行回退工作流中的第二任務時,能夠僅僅執(zhí)行已設置任務標識符的第二任務,且跳過未設置任務標識符的第二任務,能夠有效的實現(xiàn)回退工作流的執(zhí)行,且匹配該回退工作流對應的工作流的執(zhí)行狀態(tài)。

請參與圖8,為本發(fā)明圖6所示實施例中的工作流異常處理系統(tǒng)還包括的功能模塊的實施例,該系統(tǒng)還包括:

確定模塊801,用于確定在回退工作流中與該第一任務具有一一對應關系的第二任務;

標識符設置模塊802,用于為該第二任務設置任務標識符。

需要說明的是,在本發(fā)明實施例中,系統(tǒng)在執(zhí)行每一個工作流中的第一任務之前,都將對該第一任務按照確定模塊801和標識符設置模塊802所描述的內容進行任務標識符的設置。

在本發(fā)明實施例中,系統(tǒng)將對工作流中的每一個第一任務按照如下過程設置任務標識符:確定模塊801確定在回退工作流中與該第一任務具有一一對應關系的第二任務,標識符設置模塊802為該第二任務設置任務標識符。且在設置任務標識符之后,系統(tǒng)將執(zhí)行該第一任務。

在本發(fā)明實施例中,通過在執(zhí)行工作流中的第一任務之前,為該第一任務在回退工作流中具有一一對應關系的第二任務設置任務標識符,使得在該工作流執(zhí)行出現(xiàn)異常時,能夠基于任務標識符執(zhí)行回退工作流,以實現(xiàn)對異常情況的快速處理,能夠有效降低異常處理的復雜度。且通過編寫回退工作流的方式處理異常情況,能夠有效簡化編程流程,減少編程人員的工作量。

通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務 器,空調器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例的方法。

以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
江永县| 仁寿县| 灌云县| 和田县| 阿拉善右旗| 米易县| 林周县| 双辽市| 乐业县| 靖边县| 西丰县| 广河县| 突泉县| 临桂县| 盐源县| 兰考县| 巴彦淖尔市| 民勤县| 清涧县| 嘉禾县| 土默特右旗| 邳州市| 穆棱市| 泾阳县| 高碑店市| 沿河| 松江区| 娄烦县| 南城县| 镇安县| 南安市| 扶沟县| 晋宁县| 错那县| 苍梧县| 邹城市| 阿拉善右旗| 池州市| 彭山县| 额敏县| 虹口区|