本申請提供了一種分布式編譯系統、方法。該系統包括中心模塊、編譯模塊、元數據模塊以及數據模塊,在中心模塊采取拉取模型時,該方法包括:響應于任務處理請求,確定編譯機的設備信息;根據設備信息,向元數據模塊發送任務查詢請求,以查詢元數據模塊中設備要求與設備信息匹配的所有待處理任務;若查詢出的待處理任務為一個,則以查詢出的待處理任務為目標待處理任務,若查詢出的待處理任務為兩個以上,則根據預設的排序策略從中選擇一個作為目標待處理任務;將目標待處理任務發送到該編譯機進行任務處理;編譯機對目標待處理任務處理得到可執行文件,將可執行文件上傳至數據模塊。該方法將源代碼與用戶隔離,并實現最大化的利用資源。用資源。用資源。
【技術實現步驟摘要】
分布式編譯方法和系統
[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]為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其它的附圖。
[0045]圖1為本申請一個實施例提供的分布式編譯系統的架構示意圖;
[0046]圖2為本申請一個實施例提供的應用于中心模塊的分布式編譯方法的流程示意圖;
[0047]圖3為本申請另一個實施例提供的應用于中心模塊的分布式編譯方法的流程示意圖;
[0048]圖4為本申請一個實施例提供的應用于編譯模塊本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種分布式編譯方法,其特征在于,應用于分布式編譯系統中的中心模塊,所述分布式編譯系統包括所述中心模塊、編譯模塊、元數據模塊以及數據模塊,所述分布式編譯方法包括:響應于編譯模塊內部署的多個編譯機中的任意一個所述編譯機發送的任務處理請求,確定該所述編譯機的設備信息;根據所述設備信息,向所述元數據模塊發送任務查詢請求,以查詢所述元數據模塊中設備要求與所述設備信息匹配的所有待處理任務;若查詢出的所述待處理任務為一個,則以查詢出的所述待處理任務為目標待處理任務,若查詢出的所述待處理任務為兩個以上,則根據預設的排序策略從中選擇一個作為所述目標待處理任務;將所述目標待處理任務發送到該所述編譯機進行任務處理;其中,所述編譯機接收到所述目標待處理任務后,讀取并編譯所述目標待處理任務對應的源代碼,得到可執行文件,以及將所述可執行文件上傳至所述數據模塊,以供用戶下載。2.根據權利要求1所述的分布式編譯方法,其特征在于,所述預設的排序策略包括以下至少一種:根據所述待處理任務的任務優先級高低進行選擇;根據所述待處理任務的創建順序進行選擇;根據創建所述待處理任務用戶的用戶優先級高低進行選擇。3.根據權利要求1所述的分布式編譯方法,其特征在于,還包括:在選擇出所述目標待處理任務后,向所述元數據模塊發送標記請求;所述標記請求用于對所述目標待處理任務進行標記,以避免所述目標待處理任務被重復處理。4.一種分布式編譯方法,其特征在于,應用于分布式編譯系統中的中心模塊,所述分布式編譯系統包括所述中心模塊、編譯模塊、元數據模塊以及數據模塊,所述分布式編譯方法包括:響應于編譯模塊內部署的多個編譯機中的任意一個所述編譯機發送的設備信息設置請求,在所述元數據模塊中設置該所述編譯機的設備信息;從所述元數據模塊的所有待處理任務中選擇一個作為目標待處理任務;根據所述目標待處理任務的設備要求,向所述元數據模塊發送編譯機選擇請求,以從所述元數據模塊中選擇一個所述設備信息與所述設備要求匹配的編譯機作為目標編譯機;將所述目標待處理任務發送到所述目標編譯機進行任務處理;其中,所述目標編譯機接收到所述目標待處理任務后,讀取并編譯所述目標待處理任務對應的源代碼,得到可執行文件,以及將所述可執行文件上傳至所述數據模塊,以供用戶下載。5.一種分布式編譯方法,其特征在于,應用于分布式編譯系統中的...
【專利技術屬性】
技術研發人員:徐磊,
申請(專利權)人:廣州文遠知行科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。