一種流程控制系統及方法
【技術領域】
[0001]本發明涉及互聯網技術領域,具體涉及一種流程控制系統及方法。
【背景技術】
[0002]在互聯網項目開發中,有一些功能的實現流程復雜,這樣對實現流程的控制也就繁重復雜,例如在搜索引擎構建的過程中,流程控制是構建系統的關鍵,而由于實現搜索引擎的處理模塊數量較多、流程復雜,導致對流程中各模塊的控制也很復雜。
[0003]在現有技術中,流程控制通常采用腳本處理方式,用腳本將各個流程聯運控制起來。但是腳本處理方式需要人工編寫腳本,當流程復雜時,流程控制腳本也極其復雜,只有對整個業務非常熟悉的專業人員才能夠熟練使用,流程控制實現困難,且腳本生成后不便于修改與查找錯誤,難以維護。同時,利用腳本進行流程控制時,難以發現在流程運行過程中的運行結果錯誤,導致查找錯誤原因效率較低。
【發明內容】
[0004]有鑒于此,本發明提供一種流程控制系統及方法,以解決現有技術中流程控制實現復雜、難以維護的技術問題。
[0005]為解決上述問題,本發明提供的技術方案如下:
[0006]一種流程控制系統,所述系統包括:
[0007]界面模塊、主控模塊以及任務執行模塊;
[0008]所述界面模塊,用于調用狀態元素構建狀態控制流程圖,根據所述狀態控制流程圖生成流程描述文件,將所述流程描述文件保存到數據庫;向所述主控模塊發送流程開始觸發命令;從所述數據庫讀取任務運行信息,顯示所述任務運行信息;
[0009]所述主控模塊,用于當接收到所述流程開始觸發命令時,從所述數據庫中獲取所述流程描述文件,生成所述任務執行模塊的控制執行信息;根據所述控制執行信息向所述任務執行模塊發送任務命令;接收所述任務執行模塊反饋的任務運行信息,實時將所述任務運行信息寫入所述數據庫;
[0010]所述任務執行模塊,用于根據所述任務命令執行任務,在任務執行完成后向所述主控模塊反饋任務運行信息。
[0011 ] 相應的,所述主控模塊具體用于:
[0012]當接收到所述流程開始觸發命令時,從所述數據庫中獲取所述流程描述文件,通過解析所述流程描述文件生成任務執行樹,所述任務執行樹包括任務執行模塊的執行順序以及各個所述任務執行模塊對應的任務命令;
[0013]按照所述執行順序向各個所述任務執行模塊發送相應的任務命令;
[0014]接收所述任務執行模塊反饋的任務運行信息,實時將所述任務運行信息寫入所述數據庫。
[0015]相應的,所述界面模塊具體用于:
[0016]調用狀態元素構建狀態控制流程圖;
[0017]讀取所述狀態控制流程圖中各個所述狀態元素的狀態類型標簽、狀態標識以及狀態內容,按照所述狀態控制流程圖各個所述狀態元素的狀態走向順序將各個所述狀態元素的狀態類型標簽、狀態標識以及狀態內容寫入流程描述文件,將所述流程描述文件保存到數據庫;
[0018]向所述主控模塊發送流程開始觸發命令;從所述數據庫讀取任務運行信息,顯示所述任務運行信息。
[0019]相應的,所述主控模塊還用于:
[0020]在流程重新啟動時,從數據庫讀取所述任務運行信息;根據所述任務運行信息,繼續向所述任務執行模塊發送任務命令。
[0021 ] 相應的,所述主控模塊還用于:
[0022]當超過預設時間未收到所述任務執行模塊反饋的任務運行信息,產生告警信息寫入所述數據庫;
[0023]所述界面模塊還用于:
[0024]從所述數據庫讀取所述告警信息,顯示所述告警信息。
[0025]一種流程控制方法,所述方法包括:
[0026]界面模塊調用狀態元素構建狀態控制流程圖,根據所述狀態控制流程圖生成流程描述文件,將所述流程描述文件保存到數據庫;向主控模塊發送流程開始觸發命令;
[0027]所述主控模塊當接收到所述流程開始觸發命令時,從所述數據庫中獲取所述流程描述文件,生成任務執行模塊的控制執行信息;根據所述控制執行信息向所述任務執行模塊發送任務命令;
[0028]所述任務執行模塊根據所述任務命令執行任務,在任務執行完成后向所述主控模塊反饋任務運行信息;
[0029]所述主控模塊接收所述任務執行模塊反饋的任務運行信息,實時將所述任務運行信息寫入所述數據庫;
[0030]所述界面模塊從所述數據庫讀取任務運行信息,顯示所述任務運行信息。
[0031]相應的,所述當接收到所述流程開始觸發命令時,從所述數據庫中獲取所述流程描述文件,生成任務執行模塊的控制執行信息,包括:
[0032]當接收到所述流程開始觸發命令時,從所述數據庫中獲取所述流程描述文件,通過解析所述流程描述文件生成任務執行樹,所述任務執行樹包括任務執行模塊的執行順序以及各個所述任務執行模塊對應的任務命令;
[0033]所述根據所述控制執行信息向所述任務執行模塊發送任務命令,包括:
[0034]按照所述執行順序向各個所述任務執行模塊發送相應的任務命令。
[0035]相應的,所述根據所述狀態控制流程圖生成流程描述文件,將所述流程描述文件保存到數據庫,包括:
[0036]讀取所述狀態控制流程圖中各個所述狀態元素的狀態類型標簽、狀態標識以及狀態內容,按照所述狀態控制流程圖各個所述狀態元素的狀態走向順序將各個所述狀態元素的狀態類型標簽、狀態標識以及狀態內容寫入流程描述文件,將所述流程描述文件保存到數據庫。
[0037]相應的,所述方法還包括:
[0038]所述主控模塊在流程重新啟動時,從數據庫讀取所述任務運行信息;根據所述任務運行信息,繼續向所述任務執行模塊發送任務命令。
[0039]相應的,所述方法還包括:
[0040]所述主控模塊當超過預設時間未收到所述任務執行模塊反饋的任務運行信息,產生告警信息寫入所述數據庫;
[0041]所述界面模塊從所述數據庫讀取所述告警信息,顯示所述告警信息。從所述數據庫讀取所述告警信息,顯示所述告警信息。
[0042]由此可見,本發明實施例具有如下有益效果:
[0043]本發明實施例運用工作流技術,通過可視化方案調用狀態元素以構建狀態控制流程圖,根據狀態控制流程圖即可生成流程描述文件,主控模塊根據流程描述文件采用集中控制方式來處理各個流程,將流程分解成可執行的任務,隨后將任務放入各個任務執行模塊的任務池中,各個任務執行模塊從任務池中獲取任務執行,執行完成后將執行結果上報給主控模塊,主控模塊根據任務執行模塊返回的結果繼續進行流程控制。這樣,通過繪制狀態控制流程圖即可自動完成流程控制,實現簡單、便于維護,有效節省實現流程控制的時間;同時,采用這種自動化流程控制可以減小任務的粒度,以減小任務出錯對整體流程的影響和流程恢復的難度,并且可以實時反饋流程執行運行狀態以供用戶查看參考,并及時反饋異常情況。
【附圖說明】
[0044]圖1為本發明實施例中提供的流程控制系統實施例的示意圖;
[004