本申請涉及自動化,特別是涉及一種任務構建方法、裝置、計算機設備、存儲介質和計算機程序產品。
背景技術:
1、隨著軟件部署的不斷發展,自動化軟件部署技術應運而生。這項技術通過一系列步驟和操作來定義,每個步驟代表一個特定的操作,例如檢出代碼、編譯代碼、運行測試、構建鏡像等。這些步驟可以像流水線一樣按照特定順序組織,并根據需要進行條件判斷和并行執行。然而,當流水線中的某一步驟出現系統性錯誤時(例如,運行測試環節出錯),可能會導致大量軟件在進行自動化部署時始終失敗,從而浪費了大量的部署機會,以及大量的人力資源。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種任務構建方法、裝置、計算機設備、計算機可讀存儲介質和計算機程序產品。
2、第一方面,本申請提供了一種任務構建方法。所述方法包括:
3、獲取流水線構建任務,從令牌桶中獲取令牌,為所述流水線構建任務配置所述令牌;
4、根據所述令牌,執行所述流水線構建任務;
5、在所述流水線構建任務失敗的情況下,分析所述流水線構建任務,得到所述流水線構建任務失敗的失敗類別;
6、在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶對其他流水線構建任務的配置速率,直到所述流水線構建任務的系統性錯誤得到解決。
7、在其中一個實施例中,所述在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶對其他流水線構建任務的配置速率,包括:
8、在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶在周期內對其他流水線構建任務的配置數量;
9、在減少所述令牌桶周期內對其他流水線構建任務的配置數量,且流水線構建任務仍失敗的情況下,增加所述令牌桶對其他流水線構建任務的配置周期。
10、在其中一個實施例中,所述獲取流水線構建任務,包括:
11、響應于流水線構建任務,將所述流水線構建任務存儲到預設的構建隊列中;
12、從所述構建隊列中依次獲取流水線構建任務。
13、在其中一個實施例中,所述方法還包括:
14、在所述失敗類別為系統性錯誤的情況下,對所述系統性錯誤進行修復;
15、在所述系統性錯誤解決的情況下,增加所述令牌桶對其他流水線構建任務的配置頻率。
16、在其中一個實施例中,所述構建任務包括部署程序;所述根據所述令牌,執行所述流水線構建任務,包括:
17、根據所述流水線構建任務,確定需要部署的程序標識以及目標地址;
18、根據所述程序標識,獲取所述需要部署的程序對應的代碼文件;
19、對所述代碼文件進行編譯,得到流水線構建任務對應的程序;
20、對所述程序進行運行測試,并在所述運行測試通過的情況下,將所述程序部署到目標地址。
21、在其中一個實施例中,修改所述令牌桶對其他流水線構建任務的配置速率,包括:
22、修改所述令牌存儲到令牌桶的頻率;其中,在所述令牌桶中不存在令牌的情況下,無法為所述流水線構建任務配置令牌。
23、第二方面,本申請還提供了一種任務構建裝置。所述裝置包括:
24、令牌配置模塊,用于獲取流水線構建任務,從令牌桶中獲取令牌,為所述流水線構建任務配置所述令牌;
25、任務執行模塊,用于根據所述令牌,執行所述流水線構建任務;
26、類別確定模塊,用于在所述流水線構建任務失敗的情況下,分析所述流水線構建任務,得到所述流水線構建任務失敗的失敗類別;
27、速率控制模塊,用于在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶對其他流水線構建任務的配置速率,直到所述流水線構建任務的系統性錯誤得到解決。
28、在其中一個實施例中,所述速率控制包括,包括:
29、數量控制子模塊,用于在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶在周期內對其他流水線構建任務的配置數量;
30、周期控制子模塊,用于在減少所述令牌桶周期內對其他流水線構建任務的配置數量,且流水線構建任務仍失敗的情況下,增加所述令牌桶對其他流水線構建任務的配置周期。
31、在其中一個實施例中,所述令牌配置模塊,包括:
32、任務存儲子模塊,用于響應于流水線構建任務,將所述流水線構建任務存儲到預設的構建隊列中;
33、任務獲取子模塊,用于從所述構建隊列中依次獲取流水線構建任務。
34、在其中一個實施例中,所述裝置還包括,錯誤修復模塊,用于:
35、在所述失敗類別為系統性錯誤的情況下,對所述系統性錯誤進行修復;
36、在所述系統性錯誤解決的情況下,增加所述令牌桶對其他流水線構建任務的配置頻率。
37、在其中一個實施例中,所述構建任務包括部署程序;所述任務執行模塊,包括:
38、標識確定子模塊,用于根據所述流水線構建任務,確定需要部署的程序標識以及目標地址;
39、代碼確定子模塊,用于根據所述程序標識,獲取所述需要部署的程序對應的代碼文件;
40、代碼編譯子模塊,用于對所述代碼文件進行編譯,得到流水線構建任務對應的程序;
41、程序部署子模塊,用于對所述程序進行運行測試,并在所述運行測試通過的情況下,將所述程序部署到目標地址。
42、在其中一個實施例中,所述裝置還包括,配置速率控制模塊,用于:
43、修改所述令牌存儲到令牌桶的頻率;其中,在所述令牌桶中不存在令牌的情況下,無法為所述流水線構建任務配置令牌。
44、第三方面,本申請還提供了一種計算機設備。所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現如本公開實施例任一項所述的任務構建方法。
45、第四方面,本申請還提供了一種計算機可讀存儲介質。所述計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現如本公開實施例任一項所述的任務構建方法。
46、第五方面,本申請還提供了一種計算機程序產品。所述計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現如本公開實施例任一項所述的任務構建方法。
47、上述任務構建方法、裝置、計算機設備、存儲介質和計算機程序產品,獲取流水線構建任務,并從令牌桶中獲取令牌并執行流水線構建任務,在流水線任務失敗且為系統性錯誤時,減少令牌桶對其他流水線構建任務的配置速率。通過這種方式,能夠根據當前流水線構建任務的系統錯誤情況動態調整任務構建速率,從而減少任務失敗的風險,提高構建任務的整體通過率。同時,調整令牌桶對其他任務的配置速度,可以有效控制構建任務的時間,提高任務構建的可靠性和穩定性,確保任務通過率,并避免構建資源的浪費。
1.一種任務構建方法,其特征在于,應用于服務器,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述在所述失敗類別為系統性錯誤的情況下,減少所述令牌桶對其他流水線構建任務的配置速率,包括:
3.根據權利要求1所述的方法,其特征在于,所述獲取流水線構建任務,包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求1所述的方法,其特征在于,所述構建任務包括部署程序;所述根據所述令牌,執行所述流水線構建任務,包括:
6.根據權利要求1-5任一所述的方法,其特征在于,修改所述令牌桶對其他流水線構建任務的配置速率,包括:
7.一種任務構建裝置,其特征在于,所述裝置包括:
8.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至6中任一項所述的方法的步驟。
9.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。
10.一種計算機程序產品,包括計算機程序,其特征在于,該計算機程序被處理器執行時實現權利要求1至6中任一項所述的方法的步驟。