基於分布式系統的任務處理方法、裝置和系統與流程
2023-06-28 21:20:01

本發明涉及分布式系統領域,具體而言,涉及一種基於分布式系統的任務處理方法、裝置和系統。
背景技術:
隨著微處理機技術的發展,分布式系統可以潛在地得到比單個大型集中式系統更好的性價比,可以通過較低廉的價格實現相似的功能,因此,分布式系統成為越來越普遍使用的系統架構。
但是,現有技術中的分布式執行系統是在特定應用環境中設計的分布式執行系統,其架構如圖1所示,系統架構分為層:資源管理層和任務執行層,其中資源管理層作為整個系統的中控設備,可以稱之為driver,負責對任務的分配、資源的分配、客戶端的api接口等功能;任務執行層的任務處理設備可以實現具體的任務執行邏輯,稱之為node,每個node部署在一臺機器上(gateway),node是可水平擴展。任務的執行流程圖如圖1所示:
客戶端通過driver提供的http接口提交執行任務;driver基於內部的資源管理模型,將任務分發到指定的node上;node讀取到分配到node上的任務;node獲取到任務後,將任務信息註冊到內存中;啟動任務執行進程,提交到計算引擎執行;保存任務執行日誌以及進程pid到本地;任務執行的狀態(執行中、執行完畢),將任務信息反饋到driver;driver在將任務狀態回調給客戶端。
通過上述流程可以發現,上述系統中至少存在如下三個問題:
1、如果driver與其中某些node網絡不通,則driver發起的任務信息將無法成功發給node,也無法獲知哪些任務信息沒有發送成功;
2、如果任務處理設備處於特殊的應用環境,例如在任務處理設備node進行升級的過程中,或者進入中斷狀態下,由於需要重啟設備,因此重啟過程中會導致任務信息無法執行等問題;
3、若存在driver重複發了多次任務到一臺node上,node存在重複執行相同的 任務信息的問題,導致資源浪費。
針對現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題,目前尚未提出有效的解決方案。
技術實現要素:
本發明實施例提供了一種基於分布式系統的任務處理方法、裝置和系統,以至少解決現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
根據本發明實施例的一個方面,提供了一種基於分布式系統的任務處理方法,包括:任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
根據本發明實施例的另一方面,還提供了一種基於分布式系統的任務處理裝置,包括:第一獲取模塊,用於任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;第一執行模塊,用於任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;第一保存模塊,用於任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
根據本發明實施例的另一方面,還提供了一種基於分布式系統的任務處理系統,包括:主控設備,用於存儲任務信息;任務處理設備,與主控設備進行通訊,用於通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;任務處理設備還用於任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;任務處理設備還用於通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
在本發明實施例中,任務處理設備通過發起任務請求從主控設備中獲取主控設備中保存的任務信息,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程 啟動對應的任務子進程來執行任務信息,任務處理設備通過代理進程將任務執行信息保存至目標位置。
容易注意到,由於任務處理設備中主進程和任務子進程通過代理進程進行隔離,使得主進程停止或者被重啟,代理進程及任務子進程都不感知,可以正常執行任務信息,從而實現正在執行的進程在主進程啟動過程中不受影響。並且由於任務處理設備主動向主控設備獲取任務信息,即任務處理設備單向主控設備訪問,因此通過改變http方式,利用資料庫同步存儲數據,從而實現任務處理設備、主控設備不在同一個網段環境下分布式系統的部署問題。能夠支持百萬級的任務執行,並且通過http的方式,可以隨時部署node,大大提升了系統的環境適應能力和可擴展能力。
由此,本發明提供的實施例解決了現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:
圖1是根據現有技術的一種分布式執行系統的任務處理的流程圖;
圖2是根據本申請實施例的一種基於分布式系統的任務處理方法的計算機終端的硬體結構框圖;
圖3是根據本申請實施例的一種基於分布式系統的任務處理方法的流程圖;
圖4是根據本申請實施例的一種分布式執行系統的結構示意圖;
圖5是根據本申請實施例的一種可選的任務處理設備的示意圖;
圖6是根據本申請實施例的一種可選的任務處理設備執行任務的流程圖;
圖7是根據本申請實施例的一種可選的任務處理設備重啟後恢復任務信息的流程圖;
圖8是根據本申請實施例的基於分布式系統的任務處理方法的交互圖;
圖9是根據本申請實施例的基於分布式系統的任務處理裝置的示意圖;
圖10是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖11是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖12是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖13是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖14是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖15是根據本申請實施例的可選的基於分布式系統的任務處理裝置的示意圖;
圖16是根據本申請實施例的基於分布式系統的任務處理系統的示意圖;以及
圖17是根據本申請實施例的一種計算機終端的結構框圖。
具體實施方式
為了使本技術領域的人員更好地理解本申請方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本申請保護的範圍。
需要說明的是,本申請的說明書和權利要求書及上述附圖中的術語「第一」、「第二」等是用於區別類似的對象,而不必用於描述特定的順序或先後次序。應該理解這樣使用的數據在適當情況下可以互換,以便這裡描述的本申請的實施例能夠以除了在這裡圖示或描述的那些以外的順序實施。此外,術語「包括」和「具有」以及他們的任何變形,意圖在於覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限於清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對於這些過程、方法、產品或設備固有的其它步驟或單元。
首先,在對本申請實施例進行描述的過程中出現的部分名詞或術語適用於如下解釋:
分布式系統:distributedsystem,是建立在網絡上的軟體系統,具有高度的內聚性和透明性。內聚性是指每一個資料庫分布節點高度自治,有本地的資料庫管理系統。透明性是指每一個資料庫分布節點對用戶的應用來說都是透明的,看不出是本地還是遠程。
driver:主控設備,分布式執行系統中的服務層(中控),負責資源管理。
node:任務處理設備,分布式執行系統中的集群的機器節點,也稱之為gateway,具體負責任務的執行。
pid:任務進程編號,啟動代理進程時進行保存。
實施例1
根據本申請實施例,還提供了一種基於分布式系統的任務處理方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,並且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟。
本申請實施例一所提供的方法實施例可以在移動終端、計算機終端或者類似的運算裝置中執行。以運行在計算機終端上為例,圖2是根據本申請實施例的一種基於分布式系統的任務處理方法的計算機終端的硬體結構框圖。如圖2所示,計算機終端20可以包括一個或多個(圖中僅示出一個)處理器202(處理器202可以包括但不限於微處理器mcu或可編程邏輯器件fpga等的處理裝置)、用於存儲數據的存儲器204、以及用於通信功能的傳輸模塊206。本領域普通技術人員可以理解,圖2所示的結構僅為示意,其並不對上述電子裝置的結構造成限定。例如,計算機終端20還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。
存儲器204可用於存儲應用軟體的軟體程序以及模塊,如本申請實施例中的基於分布式系統的任務處理方法對應的程序指令/模塊,處理器202通過運行存儲在存儲器204內的軟體程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的基於分布式系統的任務處理方法。存儲器204可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、快閃記憶體、或者其他非易失性固態存儲器。在一些實例中,存儲器204可進一步包括相對於處理器202遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至計算機終端20。上述網絡的實例包括但不限於網際網路、企業內部網、區域網、移動通信網及其組合。
傳輸裝置206用於經由一個網絡接收或者發送數據。上述的網絡具體實例可包括計算機終端20的通信供應商提供的無線網絡。在一個實例中,傳輸裝置206包括一個網絡適配器(networkinterfacecontroller,nic),其可通過基站與其他網絡設備相連從而可與網際網路進行通訊。在一個實例中,傳輸裝置206可以為射頻(radiofrequency,rf)模塊,其用於通過無線方式與網際網路進行通訊。
在上述運行環境下,本申請提供了如圖3所示的基於分布式系統的任務處理方法。圖3是根據本申請實施例的一種基於分布式系統的任務處理方法的流程圖,如圖3所示的方法可以包括如下步驟s301至步驟s305:
步驟s301,任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中, 在主控設備中保存任務請求對應的任務信息。
可選地,上述任務處理設備可以是部署在分布式系統中的集群的機器節點node,上述任務請求可以是http請求,上述主控設備可以是driver,主控設備的資料庫中保存有任務處理設備需要的任務信息。
需要說明的是,分布式系統中任務都在資源管理層driver層做分發,driver管理node、任務。每臺node上正在執行的任務列表都存儲在driver的db中,存儲周期為任務生命周期。
圖4是根據本申請實施例的一種分布式執行系統的結構示意圖,如圖4所示,在一種可選的方案中,任務處理設備主動發送http請求給主控設備,主控設備接收到http請求之後,提取http請求對應的任務信息,通過接口將該任務信息發送給任務處理設備。
步驟s303,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息。
可選地,上述代理進程可以是代理腳本,代理腳本可以作為主進程與任務子進程的通道。
圖5是根據本申請實施例的一種可選的任務處理設備的示意圖,如圖5所示,任務處理設備node中的主進程(alisanode)與任務子進程隔離,代理進程(python進程)關聯任務子進程,並且讀寫日誌。圖6是根據本申請實施例的一種可選的任務處理設備執行任務的流程圖,結合圖5和圖6可知,在一種可選的方案中,node從driver中獲取到任務之後,啟動代理進程,傳入任務執行需要的參數,代理進程啟動具體的任務子進程執行任務信息。
步驟s305,任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選地,上述目標位置可以是代理進程的本地文件,路徑可以是任務執行路徑,上述任務信息的任務標識可以是任務id,上述任務子進程的進程信息可以是任務子進程的進程號pid。
需要說明的是,上述任務子進程執行任務信息所生成的日誌信息為完整的日誌信息,是指日誌動作與任務處理設備重啟不相關,並且只要代理進程存在,日誌就可以正常讀寫。
如圖6所示,在一種可選的方案中,任務子進程將所有的日誌信息通過流方式返回給代理伺服器,代理進程將接收到的日誌信息、子進程的進程號、任務信息標號和退出碼保存到本地文件中。
本申請上述實施例一公開的方案中,任務處理設備通過發起任務請求從主控設備中獲取主控設備中保存的任務信息,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息,任務處理設備通過代理進程將任務執行信息保存至目標位置。
容易注意到,由於任務處理設備中主進程和任務子進程通過代理進程進行隔離,使得主進程停止或者被重啟,代理進程及任務子進程都不感知,可以正常執行任務信息,從而實現正在執行的進程在主進程啟動過程中不受影響。並且由於任務處理設備主動向主控設備獲取任務信息,即任務處理設備單向主控設備訪問,因此通過改變http方式,利用資料庫同步存儲數據,從而實現任務處理設備、主控設備不在同一個網段環境下分布式系統的部署問題。能夠支持百萬級的任務執行,並且通過http的方式,可以隨時部署node,大大提升了系統的環境適應能力和可擴展能力。
由此,本申請提供的上述實施例一的方案解決了現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
在本申請上述實施例中,在步驟s303主進程接收到任務信息之後,上述方法還包括如下步驟s307:
步驟s307,如果主進程被重啟,則通過代理進程離線啟動任務子進程來執行任務信息,並離線保存任務執行信息。
在一種可選的方案中,如果node主進程被重啟,代理進程離線啟動任務子進程執行任務信息,並將任務子進程發送的任務執行信息通過離線存儲方式儲存在本地文件中。
通過上述步驟s307,主進程被重啟,代理進程通過離線存儲任務子進程的任務執行信息的方式保護任務狀態,從而實現任務處理設備熱重啟不影響任務執行、不丟失日誌信息的目的。
在本申請上述實施例中,在步驟s307主進程被重啟之後,上述方法還包括如下步驟s311至步驟s313:
步驟s311,任務處理設備通過訪問主控設備,來獲取當前正在執行的至少一個任 務信息,任務信息包括:任務標識和任務執行路徑。
可選地,上述任務執行路徑可以是全局唯一的關鍵路徑,這個路徑可以維持整個任務的生命周期,任務執行路徑的生成方式為:客戶端名稱+日期+隨機數+任務編號。
圖7是根據本申請實施例的一種可選的任務處理設備重啟後恢復任務信息的流程圖,如圖7所示,在一種可選的方案中,node上保留任務信息都在內存中,node重啟後任務信息丟失。但是任務子進程與node主進程分離,node重啟,任務正常執行。待node恢復後,調用恢復(recover)接口,獲取driver中找到當前正在執行的任務列表(即上述的當前正在執行的至少一個任務信息),每個任務包含有任務編號和任務執行路徑。
步驟s313,任務處理設備通過檢測在目標位置中記錄的任務執行信息,來確定在主進程被重啟時至少一個任務信息中已經被執行或未被執行的任務。
可選地,通過查詢該任務執行路徑下的日誌文件,可以得到日誌信息接口;通過查詢該任務執行路徑下的任務子進程文件,可以得到該任務信息是否已經被任務子進程執行;通過查詢該任務執行路徑下的退出碼文件,可以得到該任務信息是否已經被任務子進程執行結束。
如圖7所示,在一種可選的方案中,任務處理設備對每個任務基於任務執行路徑長訓是否存在對應的子進程的進程號,如果存在對應的子進程的進程號,則說明該任務已經被執行;如果不存在對應的子進程的進程號,則說明該任務為被執行。
通過上述步驟s311至步驟s313,任務處理設備主進程被重啟後,從主控設備中獲取當前正在執行的至少一個任務信息,並檢測在目標位置中記錄的任務執行信息,確定至少一個任務信息是否已經被執行或未被執行,從而實現主進程重啟後,任務子進程執行任務信息的一致性。
在本申請上述實施例中,步驟s313任務處理設備通過檢測在目標位置中記錄的任務執行信息,來確定至少一個任務信息中已經被執行或未被執行的任務,包括如下步驟s3133至步驟s3135:
步驟s3131,任務處理設備在目標位置進行本地查詢,確定是否已經存在與至少一個任務信息中任意一個任務標識相匹配的進程信息。
可選地,上述進程信息可以是子進程的進程號,每一個任務子進程在啟動執行任務信息時,都會將自己的進程號對應的存放在該任務信息中。
在一種可選的方案中,任務處理設基於任務執行路徑進行查詢,根據任務標識確 定至少一個任務信息中任意一個任務標識是否存在對應的子進程的進程號。
步驟s3133,如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程啟動執行,任務處理設備僅在內存中註冊該任務信息。
如圖7所示,在一種可選的方案中,如果存在子進程的進程號,說明該任務信息已經被相應的任務子進程啟動執行,則任務處理設備重新恢復任務信息(即上述的在內存中註冊該任務信息),並讀取該任務的任務進程信息(即上述的任務執行信息)。
步驟s3135,如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程所執行,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程執行任務信息。
如圖7所示,在一種可選的方案中,如果不存在子進程的進程號,說明該任務信息未被相應的任務子進程執行,則任務處理設備在內存中保存該任務信息,通過啟動代理進程來啟動相應的任務子進程執行任務信息。
通過上述步驟s3133至步驟s3135,任務處理設備從在目標位置進行本地查詢,確定是否存在相應的子進程的進程號,如果存在則重新記錄任務信息;如果不存在,則通過代理進程啟動任務子進程執行任務信息,從而實現主進程重啟後,任務子進程執行任務信息的一致性。
在本申請上述實施例中,在步驟s3133任務處理設備僅在內存中註冊該任務信息之前,上述方法還包括如下步驟s317至步驟s319:
步驟s315,任務處理設備在目標位置進行本地查詢,確定是否已經存在與已經被對應的任務子進程啟動執行的任務信息相匹配的退出碼。
可選地,上述退出碼(returncode)用於表徵該任務信息已經執行結束。
步驟s317,如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程執行結束,任務處理設備終止在內存中註冊該任務信息,直接將對應的任務日誌反饋給主控設備。
步驟s319,如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程執行完畢,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程重新執行任務信息。
在一種可選的方案中,如果任務處理設備確定存在對應的子進程的進程號,則判斷是否存在任務信息對應的退出碼,如果存在,則說明該任務信息已經被執行完畢, 那麼就不需要在內存中註冊該任務信息,直接將相應的任務日誌反饋給主控設備;如果不存在,則說明該任務未被執行完畢,需要通過代理進程啟動相應的任務子進程重新執行該任務信息。
通過上述步驟s317至步驟s319,任務處理設備在目標位置進行本地查詢,確定是否已經存在對應的退出碼,如果存在則反饋任務日誌,如果不存在則啟動相應的任務子進程重新執行該任務信息,從而實現主進程重啟後,恢復正在執行的任務信息,保證了任務信息的狀態。
在本申請上述實施例中,在步驟s301任務處理設備通過發起任務請求從主控設備中獲取任務信息之後,上述方法還包括如下步驟s321至步驟s323:
步驟s321,從任務信息中提取路徑參數,並根據路徑參數生成任務執行路徑。
在一種可選的方案中,任務處理設備在獲取到任務信息時,會從任務信息中獲取到一條路徑參數,任務處理設備將該參數作為當前的任務執行路徑,任務的執行日誌、進程號、退出碼都保存在該路徑下。
步驟s323,代理進程根據任務執行路徑將任務標識保存至目標位置。
在一種可選的方案中,任務子進程在執行啟動時會將當前子進程的進程號保存到本地文件中,保存的路徑為任務執行路徑。
通過上述步驟s321至步驟s323,任務處理設備從任務信息中提取路徑參數,生成任務執行路徑,代理進程根據任務執行路徑將任務標識保存在目標位置,從而保證主進程重啟前後任務日誌的完整性和可查性。
在本申請上述實施例中,上述方法還包括如下步驟s325:
步驟s325,任務處理設備的主進程根據任務標識監聽任務信息是否被啟動執行,並根據退出碼監聽任務信息是否執行結束。
通過上述步驟s325,任務處理設備可以通過任務標識和退出碼監聽任務信息是否被執行,以及是否執行結束,從而確保任務信息全部被執行且全部執行完畢。
下面結合圖5、圖7和圖8詳細介紹本申請的一種優選實施例。
如圖8所示,以任務處理設備包括主進程、代理進程和任務子進程為應用場景,提供了一種可選的基於分布式系統的任務處理方法,該方法可以包括如下步驟s81至步驟s87:
s801,客戶終端81提交任務。
可選地,客戶可以通過客戶終端81發布任務信息。
s802,任務處理設備163的主進程獲取主控設備161中保存的任務信息。
可選地,任務處理設備163的主進程通過http請求從主控設備161中獲取任務信息,任務信息保存在主控設備中。
在該實施例中,上述步驟s802的實現方式與本申請上述實施例中的步驟s301的實現方式一致,在此不再贅述。
s803,任務處理設備163通過代理進程啟動任務子進程執行任務信息。
可選地,任務處理設備163的主進程收到任務信息之後,通過觸發代理進程啟動任務子進程執行任務信息,如圖5所示,任務處理設備node中的主進程(alisanode)與任務子進程隔離,代理進程(python進程)關聯任務子進程,並且讀寫日誌。
在該實施例中,上述步驟s803的實現方式與本申請上述實施例中的步驟s303的實現方式一致,在此不再贅述。
s804,任務處理設備163通過代理進程保存任務執行信息。
可選地,任務處理設備163在獲取到任務信息時,從任務信息中獲取路徑參數,生成任務執行路徑,代理進程將任務信息的任務標識、任務子進程的進程信息、日誌信息和退出碼保存在該任務執行路徑對應的目標位置。
在該實施例中,上述步驟s804的實現方式與本申請上述實施例中的步驟s305的實現方式一致,在此不再贅述。
s805,主進程重啟,任務處理設備163通過理進程離線啟動任務子進程執行任務信息,並離線保存任務執行信息。
可選地,如果主進程被重啟,代理進程離線啟動任務子進程來執行任務信息,並將任務子進程執行任務信息生成的任務執行信息通過離線存儲方式保存在目標位置。主進程被重啟後,任務處理設備163從主控設備161中獲取正在執行的任務信息,並從目標位置中查詢任務執行信息,確定主進程被重啟時該任務信息是否已經被執行或未被執行。
如圖7所示,在一種可選的方案中,主進程被重啟後,任務處理設備163調用恢復接口獲取主控設備161中保存的任務列表,檢測目標位置中是否存在對應的任務子進程的進程號,如果不存在,說明該任務信息未被相應的任務子進程執行,則任務處理設備163在內存中保存該任務信息,通過啟動代理進程來啟動相應的任務子進程執 行任務信息;如果存在,說明該任務信息已經被相應的任務子進程啟動執行,則任務處理設備163檢測目標位置中是否存在對應的退出碼,如果不存在,則通過代理進程啟動對應的任務子進程重新執行該任務信息,如果存在,則返回任務日誌給主控設備161。
s806,任務處理設備163返回任務狀態給主控設備161。
可選地,主進程根據任務標識監聽任務信息是否被啟動執行,根據退出碼監聽任務信息是否執行結束,如果主進程監聽該任務已經被執行,則反饋任務執行信息給主控設備161,如果監聽該任務信息已經執行結束,則反饋任務日誌給主控設備161。
在該實施例中,上述步驟s806的實現方式與本申請上述實施例中的步驟s325的實現方式一致,在此不再贅述。
s807,主控設備161將任務日誌反饋給客戶終端81。
可選地,主控設備161將執行結束的任務信息的任務日誌反饋給客戶端,經正在執行的任務信息的任務執行信息給客戶終端81。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模塊並不一定是本申請所必須的。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可藉助軟體加必需的通用硬體平臺的方式來實現,當然也可以通過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質(如rom/ram、磁碟、光碟)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,伺服器,或者網絡設備等)執行本申請各個實施例所述的方法。
實施例2
根據本申請實施例,還提供了一種用於實施上述基於分布式系統的任務處理方法的基於分布式系統的任務處理裝置,如圖9所示,該裝置包括:第一獲取模塊91,第一執行模塊93和第一保存模塊95。
其中第一獲取模塊91用於任務處理設備通過發起任務請求從主控設備中獲取任 務信息,其中,在主控設備中保存任務請求對應的任務信息。第一執行模塊93用於任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息。第一保存模塊95用於任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選地,上述任務處理設備可以是部署在分布式系統中的集群的機器節點node,上述任務請求可以是http請求,上述主控設備可以是driver,主控設備的資料庫中保存有任務處理設備需要的任務信息。上述代理進程可以是代理腳本,代理腳本可以作為主進程與任務子進程的通道。上述目標位置可以是代理進程的本地文件,路徑可以是任務執行路徑,上述任務信息的任務標識可以是任務id,上述任務子進程的進程信息可以是任務子進程的進程號pid。
需要說明的是,分布式系統中任務都在資源管理層driver層做分發,driver管理node、任務。每臺node上正在執行的任務列表都存儲在driver的db中,存儲周期為任務生命周期。上述任務子進程執行任務信息所生成的日誌信息為完整的日誌信息,是指日誌動作與任務處理設備重啟不相關,並且只要代理進程存在,日誌就可以正常讀寫。
此處需要說明的是,上述第一獲取模塊91,第一執行模塊93和第一保存模塊95對應於實施例一中的步驟s301至步驟s305,三個模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
本申請上述實施例二公開的方案中,任務處理設備通過發起任務請求從主控設備中獲取主控設備中保存的任務信息,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息,任務處理設備通過代理進程將任務執行信息保存至目標位置。
容易注意到,由於任務處理設備中主進程和任務子進程通過代理進程進行隔離,使得主進程停止或者被重啟,代理進程及任務子進程都不感知,可以正常執行任務信息,從而實現正在執行的進程在主進程啟動過程中不受影響。並且由於任務處理設備主動向主控設備獲取任務信息,即任務處理設備單向主控設備訪問,因此通過改變http方式,利用資料庫同步存儲數據,從而實現任務處理設備、主控設備不在同一個網段環境下分布式系統的部署問題。能夠支持百萬級的任務執行,並且通過http的方式,可以隨時部署node,大大提升了系統的環境適應能力和可擴展能力。
由此,本申請提供的上述實施例二的方案解決了現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
在本申請上述實施例中,如圖10所示,上述裝置還包括:第二執行模塊101。
其中,第二執行模塊101用於在主進程接收到任務信息之後,如果主進程被重啟,則通過代理進程離線啟動任務子進程來執行任務信息,並離線保存任務執行信息。
此處需要說明的是,上述第二執行模塊101對應於實施例一中的步驟s307,上述模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
在本申請上述實施例中,如圖11所示,上述裝置還包括:第二獲取模塊111和第一確定模塊113。
其中。第二獲取模塊111用於任務處理設備通過訪問主控設備,來獲取當前正在執行的至少一個任務信息,任務信息包括:任務標識和任務執行路徑。第一確定模塊113用於任務處理設備通過檢測在目標位置中記錄的任務執行信息,來確定在主進程被重啟時至少一個任務信息中已經被執行或未被執行的任務。
可選地,上述任務執行路徑可以是全局唯一的關鍵路徑,這個路徑可以維持整個任務的生命周期,任務執行路徑的生成方式為:客戶端名稱+日期+隨機數+任務編號。通過查詢該任務執行路徑下的日誌文件,可以得到日誌信息接口;通過查詢該任務執行路徑下的任務子進程文件,可以得到該任務信息是否已經被任務子進程執行;通過查詢該任務執行路徑下的退出碼文件,可以得到該任務信息是否已經被任務子進程執行結束。
此處需要說明的是,上述第二獲取模塊111和第一確定模塊113對應於實施例一中的步驟s311至步驟s313,兩個模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
在本申請上述實施例中,如圖12所示,第一確定模塊113包括:第二確定模塊121,第一註冊模塊123和第二註冊模塊125。
其中,第二確定模塊121用於任務處理設備在目標位置進行本地查詢,確定是否已經存在與至少一個任務信息中任意一個任務標識相匹配的進程信息。第一註冊模塊 123用於如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程啟動執行,任務處理設備僅在內存中註冊該任務信息。第二註冊模塊125用於如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程所執行,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程執行任務信息。
可選地,上述進程信息可以是子進程的進程號,每一個任務子進程在啟動執行任務信息時,都會將自己的進程號對應的存放在該任務信息中。
此處需要說明的是,上述第二確定模塊121,第一註冊模塊123和第二註冊模塊125對應於實施例一中的步驟s3133至步驟s3135,三個模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
在本申請上述實施例中,如圖13所示,上述裝置還包括:第三確定模塊131,反饋模塊133和第三註冊模塊135。
其中,第三確定模塊131用於任務處理設備在目標位置進行本地查詢,確定是否已經存在與已經被對應的任務子進程啟動執行的任務信息相匹配的退出碼。反饋模塊133用於如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程執行結束,任務處理設備終止在內存中註冊該任務信息,直接將對應的任務日誌反饋給主控設備。第三註冊模塊135用於如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程執行完畢,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程重新執行任務信息。
可選地,上述退出碼(returncode)用於表徵該任務信息已經執行結束。
此處需要說明的是,上述第三確定模塊131,反饋模塊133和第三註冊模塊135對應於實施例一中的步驟s317至步驟s319,三個模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
在本申請上述實施例中,如圖14所示,上述裝置還包括:生成模塊141和第二保存模塊143。
其中,生成模塊141用於從任務信息中提取路徑參數,並根據路徑參數生成任務執行路徑。第二保存模塊143用於代理進程根據任務執行路徑將任務標識保存至目標位置。
此處需要說明的是,上述生成模塊141和第二保存模塊143對應於實施例一中的 步驟s321至步驟s323,兩個模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
在本申請上述實施例中,如圖15所示,上述裝置還包括:監聽模塊151。
其中,監聽模塊151用於任務處理設備的主進程根據任務標識監聽任務信息是否被啟動執行,並根據退出碼監聽任務信息是否執行結束。
此處需要說明的是,上述監聽模塊151對應於實施例一中的步驟s325,上述模塊與對應的步驟所實現的實例和應用場景相同,但不限於上述實施例一所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在實施例一提供的計算機終端20中。
實施例3
根據本申請實施例,還提供了一種用於實施上述基於分布式系統的任務處理方法的基於分布式系統的任務處理系統,如圖16所示,該系統包括:主控設備161和任務處理設備163。
其中,主控設備161用於存儲任務信息。
任務處理設備163與主控設備161進行通訊,用於通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息。
可選地,上述任務處理設備163可以是部署在分布式系統中的集群的機器節點node,上述任務請求可以是http請求,上述主控設備可以是driver,主控設備的資料庫中保存有任務處理設備需要的任務信息。
需要說明的是,分布式系統中任務都在資源管理層driver層做分發,driver管理node、任務。每臺node上正在執行的任務列表都存儲在driver的db中,存儲周期為任務生命周期。
如圖3所示,在一種可選的方案中,任務處理設備主動發送http請求給主控設備,主控設備接收到http請求之後,提取http請求對應的任務信息,通過接口將該任務信息發送給任務處理設備。
任務處理設備163還用於任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息。
可選地,上述代理進程可以是代理腳本,代理腳本可以作為主進程與任務子進程 的通道。
如圖5所示,任務處理設備node中的主進程(alisanode)與任務子進程隔離,代理進程(python進程)關聯任務子進程,並且讀寫日誌。結合圖5和圖6可知,在一種可選的方案中,node從driver中獲取到任務之後,啟動代理進程,傳入任務執行需要的參數,代理進程啟動具體的任務子進程執行任務信息。
任務處理設備163還用於通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選地,上述目標位置可以是代理進程的本地文件,路徑可以是任務執行路徑,上述任務信息的任務標識可以是任務id,上述任務子進程的進程信息可以是任務子進程的進程號pid。
需要說明的是,上述任務子進程執行任務信息所生成的日誌信息為完整的日誌信息,是指日誌動作與任務處理設備重啟不相關,並且只要代理進程存在,日誌就可以正常讀寫。
如圖6所示,在一種可選的方案中,任務子進程將所有的日誌信息通過流方式返回給代理伺服器,代理進程將接收到的日誌信息、子進程的進程號、任務信息標號和退出碼保存到本地文件中。
本申請上述實施例三公開的方案中,任務處理設備通過發起任務請求從主控設備中獲取主控設備中保存的任務信息,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息,任務處理設備通過代理進程將任務執行信息保存至目標位置。
容易注意到,由於任務處理設備中主進程和任務子進程通過代理進程進行隔離,使得主進程停止或者被重啟,代理進程及任務子進程都不感知,可以正常執行任務信息,從而實現正在執行的進程在主進程啟動過程中不受影響。並且由於任務處理設備主動向主控設備獲取任務信息,即任務處理設備單向主控設備訪問,因此通過改變http方式,利用資料庫同步存儲數據,從而實現任務處理設備、主控設備不在同一個網段環境下分布式系統的部署問題。能夠支持百萬級的任務執行,並且通過http的方式,可以隨時部署node,大大提升了系統的環境適應能力和可擴展能力。
由此,本申請提供的上述實施例三的方案解決了現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
在本申請提供的一種可選實施例中,在主進程接收到任務信息之後,任務處理設備163還用於如果主進程被重啟,則通過代理進程離線啟動任務子進程來執行任務信息,並離線保存任務執行信息。
在本申請提供的一種可選實施例中,在主進程被重啟之後,任務處理設備163還用於通過訪問主控設備,來獲取當前正在執行的至少一個任務信息,任務信息包括:任務標識和任務執行路徑;通過檢測在目標位置中記錄的任務執行信息,來確定在主進程被重啟時至少一個任務信息中已經被執行或未被執行的任務。
在本申請提供的一種可選實施例中,任務處理設備163還用於在目標位置進行本地查詢,確定是否已經存在與至少一個任務信息中任意一個任務標識相匹配的進程信息;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程啟動執行,任務處理設備僅在內存中註冊該任務信息;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程所執行,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程執行任務信息。
在本申請提供的一種可選實施例中,任務處理設備163還用於在目標位置進行本地查詢,確定是否已經存在與已經被對應的任務子進程啟動執行的任務信息相匹配的退出碼;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程執行結束,任務處理設備終止在內存中註冊該任務信息,直接將對應的任務日誌反饋給主控設備;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程執行完畢,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程重新執行任務信息。
在本申請提供的一種可選實施例中,任務處理設備163還用於從任務信息中提取路徑參數,並根據路徑參數生成任務執行路徑;其中,代理進程根據任務執行路徑將任務標識保存至目標位置。
在本申請提供的一種可選實施例中,任務處理設備163還用於主進程根據任務標識監聽任務信息是否被啟動執行,並根據退出碼監聽任務信息是否執行結束。
實施例4
本申請的實施例可以提供一種計算機終端,該計算機終端可以是計算機終端群中的任意一個計算機終端設備。可選地,在本實施例中,上述計算機終端也可以替換為移動終端等終端設備。
可選地,在本實施例中,上述計算機終端可以位於計算機網絡的多個網絡設備中的至少一個網絡設備。
在本實施例中,上述計算機終端可以執行基於分布式系統的任務處理方法中以下步驟的程序代碼:任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選地,圖17是根據本申請實施例的一種計算機終端的結構框圖。如圖17所示,該計算機終端a可以包括:一個或多個(圖中僅示出一個)處理器171、存儲器173、以及傳輸裝置175。
其中,存儲器173可用於存儲軟體程序以及模塊,如本申請實施例中的基於分布式系統的任務處理方法和裝置對應的程序指令/模塊,處理器171通過運行存儲在存儲器內的軟體程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的基於分布式系統的任務處理方法。存儲器173可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、快閃記憶體、或者其他非易失性固態存儲器。在一些實例中,存儲器173可進一步包括相對於處理器遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至終端a。上述網絡的實例包括但不限於網際網路、企業內部網、區域網、移動通信網及其組合。
處理器171可以通過傳輸裝置調用存儲器存儲的信息及應用程式,以執行下述步驟:任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選的,上述處理器171還可以執行如下步驟的程序代碼:在主進程接收到任務信息之後,如果主進程被重啟,則通過代理進程離線啟動任務子進程來執行任務信息,並離線保存任務執行信息。
可選的,上述處理器171還可以執行如下步驟的程序代碼:任務處理設備通過訪問主控設備,來獲取當前正在執行的至少一個任務信息,任務信息包括:任務標識和任務執行路徑;任務處理設備通過檢測在目標位置中記錄的任務執行信息,來確定在主進程被重啟時至少一個任務信息中已經被執行或未被執行的任務。
可選的,上述處理器171還可以執行如下步驟的程序代碼:任務處理設備在目標位置進行本地查詢,確定是否已經存在與至少一個任務信息中任意一個任務標識相匹配的進程信息;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程啟動執行,任務處理設備僅在內存中註冊該任務信息;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程所執行,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程執行任務信息。
可選的,上述處理器171還可以執行如下步驟的程序代碼:任務處理設備在目標位置進行本地查詢,確定是否已經存在與已經被對應的任務子進程啟動執行的任務信息相匹配的退出碼;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程執行結束,任務處理設備終止在內存中註冊該任務信息,直接將對應的任務日誌反饋給主控設備;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程執行完畢,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程重新執行任務信息。
可選的,上述處理器171還可以執行如下步驟的程序代碼:從任務信息中提取路徑參數,並根據路徑參數生成任務執行路徑;其中,代理進程根據任務執行路徑將任務標識保存至目標位置。
可選的,上述處理器171還可以執行如下步驟的程序代碼:任務處理設備的主進程根據任務標識監聽任務信息是否被啟動執行,並根據退出碼監聽任務信息是否執行結束。
採用本申請實施例,提供了一種基於分布式系統的任務處理方法。本任務處理設備通過發起任務請求從主控設備中獲取主控設備中保存的任務信息,任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息,任務處理設備通過代理進程將任務執行信息保存至目標位置。解決了現有技術中分布式執行系統建立在特定的應用環境中,任務處理設備無法成功執行任務信息,導致任務丟失的技術問題。
本領域普通技術人員可以理解,圖17所示的結構僅為示意,計算機終端也可以是智慧型手機(如android手機、ios手機等)、平板電腦、掌聲電腦以及移動網際網路設備(mobileinternetdevices,mid)、pad等終端設備。圖17其並不對上述電子裝置的結構造成限定。例如,計算機終端a還可包括比圖17中所示更多或者更少的組件(如網絡接口、顯示裝置等),或者具有與圖17所示不同的配置。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以 通過程序來指令終端設備相關的硬體來完成,該程序可以存儲於一計算機可讀存儲介質中,存儲介質可以包括:快閃記憶體盤、只讀存儲器(read-onlymemory,rom)、隨機存取器(randomaccessmemory,ram)、磁碟或光碟等。
實施例5
本申請的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以用於保存上述實施例一所提供的基於分布式系統的任務處理方法所執行的程序代碼。
可選地,在本實施例中,上述存儲介質可以位於計算機網絡中計算機終端群中的任意一個計算機終端中,或者位於移動終端群中的任意一個移動終端中。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:任務處理設備通過發起任務請求從主控設備中獲取任務信息,其中,在主控設備中保存任務請求對應的任務信息;任務處理設備的主進程接收到任務信息之後,通過觸發代理進程啟動對應的任務子進程來執行任務信息;任務處理設備通過代理進程將任務執行信息保存至目標位置,其中,任務執行信息包括如下任意一個或多個信息:任務信息的任務標識、任務子進程的進程信息、任務子進程執行任務信息所生成的日誌信息和退出碼。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:在主進程接收到任務信息之後,如果主進程被重啟,則通過代理進程離線啟動任務子進程來執行任務信息,並離線保存任務執行信息。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:任務處理設備通過訪問主控設備,來獲取當前正在執行的至少一個任務信息,任務信息包括:任務標識和任務執行路徑;任務處理設備通過檢測在目標位置中記錄的任務執行信息,來確定在主進程被重啟時至少一個任務信息中已經被執行或未被執行的任務。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:任務處理設備在目標位置進行本地查詢,確定是否已經存在與至少一個任務信息中任意一個任務標識相匹配的進程信息;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程啟動執行,任務處理設備僅在內存中註冊該任務信息;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程所執行,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程執行任務信息。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼: 任務處理設備在目標位置進行本地查詢,確定是否已經存在與已經被對應的任務子進程啟動執行的任務信息相匹配的退出碼;如果存在,則確定在主進程被重啟時,任務信息已經被對應的任務子進程執行結束,任務處理設備終止在內存中註冊該任務信息,直接將對應的任務日誌反饋給主控設備;如果不存在,則確定在主進程被重啟時,任務信息未被對應的任務子進程執行完畢,任務處理設備在內存中註冊該任務信息,並啟動對應的任務子進程重新執行任務信息。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:從任務信息中提取路徑參數,並根據路徑參數生成任務執行路徑;其中,代理進程根據任務執行路徑將任務標識保存至目標位置。
可選地,在本實施例中,存儲介質被設置為存儲用於執行以下步驟的程序代碼:任務處理設備的主進程根據任務標識監聽任務信息是否被啟動執行,並根據退出碼監聽任務信息是否執行結束。
上述本申請實施例序號僅僅為了描述,不代表實施例的優劣。
在本申請的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內容,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的 形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、伺服器或者網絡設備等)執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬碟、磁碟或者光碟等各種可以存儲程序代碼的介質。
以上所述僅是本申請的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本申請的保護範圍。