本技術(shù)涉及微應(yīng)用,具體而言,涉及一種微應(yīng)用隊(duì)列的加載方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、隨著前端技術(shù)的快速發(fā)展,微前端架構(gòu)逐漸成為了大型前端項(xiàng)目的首選解決方案。在微前端架構(gòu)中,每個微應(yīng)用可以獨(dú)立開發(fā)、部署和升級,有效提升了項(xiàng)目的靈活性和可維護(hù)性。然而,如何有效地管理這些微應(yīng)用之間的路由跳轉(zhuǎn),確保路由信息的準(zhǔn)確性和一致性,成為了微前端架構(gòu)中亟待解決的問題。
2、在微應(yīng)用管理領(lǐng)域,微應(yīng)用的加載和創(chuàng)建是一個關(guān)鍵的過程。現(xiàn)有的技術(shù)通常通過直接響應(yīng)微應(yīng)用的加載請求來進(jìn)行處理,缺乏一個有效的管理機(jī)制來協(xié)調(diào)多個微應(yīng)用的加載順序。當(dāng)多個微應(yīng)用同時發(fā)起加載請求時,系統(tǒng)可能由于資源競爭或處理能力不足而導(dǎo)致某些微應(yīng)用的創(chuàng)建失敗,從而影響用戶體驗(yàn)和系統(tǒng)穩(wěn)定性。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例至少提供一種微應(yīng)用隊(duì)列的加載方法、裝置、電子設(shè)備及存儲介質(zhì),本技術(shù)的有益效果為:可以有序管理微應(yīng)用的加載請求,避免無序加載導(dǎo)致的資源競爭和沖突,同時降低微應(yīng)用的創(chuàng)建失敗風(fēng)險,提高了微應(yīng)用管理系統(tǒng)的整體穩(wěn)定性。
2、本技術(shù)實(shí)施例提供了一種微應(yīng)用隊(duì)列的加載方法,應(yīng)用于微前端架構(gòu)中的主應(yīng)用,所述方法包括:
3、構(gòu)建微應(yīng)用加載組件,其中,所述微應(yīng)用加載組件中包括待加載微應(yīng)用數(shù)組、入隊(duì)列函數(shù)以及出隊(duì)列函數(shù);
4、接收待加載微應(yīng)用發(fā)送的微應(yīng)用加載請求,調(diào)用所述入隊(duì)列函數(shù)將所述微應(yīng)用加載請求加載至所述待加載微應(yīng)用數(shù)組的末尾;
5、確定所述待加載微應(yīng)用數(shù)組對應(yīng)的任務(wù)執(zhí)行標(biāo)識,若所述任務(wù)執(zhí)行標(biāo)識為無加載任務(wù),則調(diào)用所述出隊(duì)列函數(shù)在所述待加載微應(yīng)用數(shù)組的頭部取出目標(biāo)微應(yīng)用加載請求,并將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為加載進(jìn)行中;
6、調(diào)用所述目標(biāo)微應(yīng)用加載請求中包括的加載執(zhí)行函數(shù),執(zhí)行所述目標(biāo)微應(yīng)用加載請求并加載對應(yīng)的目標(biāo)微應(yīng)用。
7、一種可選的實(shí)施方式中,在調(diào)用所述目標(biāo)微應(yīng)用加載請求中包括的加載執(zhí)行函數(shù),執(zhí)行所述目標(biāo)微應(yīng)用加載請求并加載對應(yīng)的目標(biāo)微應(yīng)用之后,所述方法還包括:
8、確定所述加載執(zhí)行函數(shù)返回的加載結(jié)果狀態(tài)碼;
9、若所述加載結(jié)果狀態(tài)碼標(biāo)示加載成功,則將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為加載完成,重復(fù)調(diào)用所述出隊(duì)列函數(shù)在所述待加載微應(yīng)用數(shù)組的頭部取出目標(biāo)微應(yīng)用加載請求的步驟,直至所述待加載微應(yīng)用數(shù)組中的數(shù)據(jù)為空。
10、一種可選的實(shí)施方式中,所述方法還包括:
11、若所述加載結(jié)果狀態(tài)碼標(biāo)示加載失敗,則根據(jù)預(yù)設(shè)重試間隔重新執(zhí)行所述目標(biāo)微應(yīng)用加載請求以加載所述目標(biāo)微應(yīng)用,并同時監(jiān)測重試次數(shù);
12、若所述重試次數(shù)大于預(yù)設(shè)重試次數(shù)閾值,則將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為無加載任務(wù),并繼續(xù)處理所述待加載微應(yīng)用數(shù)組中的下一條所述微應(yīng)用加載請求。
13、一種可選的實(shí)施方式中,構(gòu)建所述微應(yīng)用加載組件具體包括:
14、定義所述待加載微應(yīng)用數(shù)組為空數(shù)組,并設(shè)置所述任務(wù)執(zhí)行標(biāo)識為無加載任務(wù);
15、配置所述預(yù)設(shè)重試間隔與所述預(yù)設(shè)重試次數(shù)閾值;
16、構(gòu)建包括所述待加載微應(yīng)用數(shù)組、所述入隊(duì)列函數(shù)以及所述出隊(duì)列函數(shù)的微隊(duì)列對象作為所述微應(yīng)用加載組件。
17、一種可選的實(shí)施方式中,調(diào)用所述目標(biāo)微應(yīng)用加載請求中包括的加載執(zhí)行函數(shù),執(zhí)行所述目標(biāo)微應(yīng)用加載請求并加載對應(yīng)的目標(biāo)微應(yīng)用,具體包括:
18、構(gòu)建已加載微應(yīng)用列表,其中,所述已加載微應(yīng)用列表中以鍵值對的形式存儲已加載微應(yīng)用,鍵為已加載微應(yīng)用對應(yīng)的身份標(biāo)識或路徑,值為已加載微應(yīng)用實(shí)例;
19、調(diào)用所述加載執(zhí)行函數(shù)觸發(fā)執(zhí)行所述目標(biāo)微應(yīng)用加載請求,提取所述目標(biāo)微應(yīng)用加載請求中攜帶的微應(yīng)用配置信息,并查找與所述微應(yīng)用配置信息相匹配的所述目標(biāo)微應(yīng)用;
20、調(diào)用微前端框架中的預(yù)設(shè)微應(yīng)用加載方法,加載并初始化所述目標(biāo)微應(yīng)用,并接收所述預(yù)設(shè)微應(yīng)用加載方法返回的已加載微應(yīng)用實(shí)例;
21、解析所述已加載微應(yīng)用實(shí)例對應(yīng)的加載結(jié)果屬性,并將所述加載結(jié)果屬性對應(yīng)的加載結(jié)果發(fā)送至所述加載執(zhí)行函數(shù),由所述加載執(zhí)行函數(shù)根據(jù)所述加載結(jié)果生成所述加載結(jié)果狀態(tài)碼。
22、一種可選的實(shí)施方式中,在確定所述待加載微應(yīng)用數(shù)組對應(yīng)的任務(wù)執(zhí)行標(biāo)識之后,所述微應(yīng)用隊(duì)列的加載方法還包括:
23、若所述任務(wù)執(zhí)行標(biāo)識為加載進(jìn)行中,則停止所述出隊(duì)列函數(shù)的執(zhí)行,直至所述任務(wù)執(zhí)行標(biāo)識變更為無加載任務(wù)。
24、本技術(shù)實(shí)施例還提供一種微應(yīng)用隊(duì)列的加載裝置,應(yīng)用于微前端架構(gòu)中的主應(yīng)用,所述微應(yīng)用隊(duì)列的加載裝置包括:
25、微應(yīng)用加載組件構(gòu)建模塊,用于構(gòu)建微應(yīng)用加載組件,其中,所述微應(yīng)用加載組件中包括待加載微應(yīng)用數(shù)組、入隊(duì)列函數(shù)以及出隊(duì)列函數(shù);
26、請求入列模塊,用于接收待加載微應(yīng)用發(fā)送的微應(yīng)用加載請求,調(diào)用所述入隊(duì)列函數(shù)將所述微應(yīng)用加載請求加載至所述待加載微應(yīng)用數(shù)組的末尾;
27、請求出列模塊,用于確定所述待加載微應(yīng)用數(shù)組對應(yīng)的任務(wù)執(zhí)行標(biāo)識,若所述任務(wù)執(zhí)行標(biāo)識為無加載任務(wù),則調(diào)用所述出隊(duì)列函數(shù)在所述待加載微應(yīng)用數(shù)組的頭部取出目標(biāo)微應(yīng)用加載請求,并將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為加載進(jìn)行中;
28、加載執(zhí)行模塊,用于調(diào)用所述目標(biāo)微應(yīng)用加載請求中包括的加載執(zhí)行函數(shù),執(zhí)行所述目標(biāo)微應(yīng)用加載請求并加載對應(yīng)的目標(biāo)微應(yīng)用。
29、一種可選的實(shí)施方式中,所述微應(yīng)用隊(duì)列的加載裝置還用于:
30、確定所述加載執(zhí)行函數(shù)返回的加載結(jié)果狀態(tài)碼;
31、若所述加載結(jié)果狀態(tài)碼標(biāo)示加載成功,則將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為加載完成,重復(fù)調(diào)用所述出隊(duì)列函數(shù)在所述待加載微應(yīng)用數(shù)組的頭部取出目標(biāo)微應(yīng)用加載請求的步驟,直至所述待加載微應(yīng)用數(shù)組中的數(shù)據(jù)為空。
32、本技術(shù)實(shí)施例還提供一種電子設(shè)備,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執(zhí)行的機(jī)器可讀指令,當(dāng)電子設(shè)備運(yùn)行時,所述處理器與所述存儲器之間通過總線通信,所述機(jī)器可讀指令被所述處理器執(zhí)行時執(zhí)行上述微應(yīng)用隊(duì)列的加載方法,或上述微應(yīng)用隊(duì)列的加載方法中任一種可能的實(shí)施方式中的步驟。
33、本技術(shù)實(shí)施例還提供一種計算機(jī)可讀存儲介質(zhì),該計算機(jī)可讀存儲介質(zhì)上存儲有計算機(jī)程序,該計算機(jī)程序被處理器運(yùn)行時執(zhí)行上述微應(yīng)用隊(duì)列的加載方法,或上述微應(yīng)用隊(duì)列的加載方法中任一種可能的實(shí)施方式中的步驟。
34、本技術(shù)實(shí)施例還提供一種計算機(jī)程序產(chǎn)品,包括計算機(jī)程序/指令,該計算機(jī)程序、指令被處理器執(zhí)行時實(shí)現(xiàn)上述微應(yīng)用隊(duì)列的加載方法,或上述微應(yīng)用隊(duì)列的加載方法中任一種可能的實(shí)施方式中的步驟。
35、本技術(shù)實(shí)施例提供的一種微應(yīng)用隊(duì)列的加載方法、裝置、電子設(shè)備及存儲介質(zhì),應(yīng)用于微前端架構(gòu)中的主應(yīng)用,所述方法包括:構(gòu)建微應(yīng)用加載組件,其中,所述微應(yīng)用加載組件中包括待加載微應(yīng)用數(shù)組、入隊(duì)列函數(shù)以及出隊(duì)列函數(shù);接收待加載微應(yīng)用發(fā)送的微應(yīng)用加載請求,調(diào)用所述入隊(duì)列函數(shù)將所述微應(yīng)用加載請求加載至所述待加載微應(yīng)用數(shù)組的末尾;確定所述待加載微應(yīng)用數(shù)組對應(yīng)的任務(wù)執(zhí)行標(biāo)識,若所述任務(wù)執(zhí)行標(biāo)識為無加載任務(wù),則調(diào)用所述出隊(duì)列函數(shù)在所述待加載微應(yīng)用數(shù)組的頭部取出目標(biāo)微應(yīng)用加載請求,并將所述任務(wù)執(zhí)行標(biāo)識設(shè)置為加載進(jìn)行中;調(diào)用所述目標(biāo)微應(yīng)用加載請求中包括的加載執(zhí)行函數(shù),執(zhí)行所述目標(biāo)微應(yīng)用加載請求并加載對應(yīng)的目標(biāo)微應(yīng)用??梢杂行蚬芾砦?yīng)用的加載請求,避免無序加載導(dǎo)致的資源競爭和沖突,同時降低微應(yīng)用的創(chuàng)建失敗風(fēng)險,提高了微應(yīng)用管理系統(tǒng)的整體穩(wěn)定性。
36、為使本技術(shù)的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。