本發(fā)明實施例涉及云計算數據中心技術領域,特別是涉及一種升級文件的自動加載方法及裝置。
背景技術:
隨著云計算技術的發(fā)展,軟件(例如系統(tǒng)軟件與應用軟件)的生命周期逐漸縮短,相應的,軟件版本的頻繁升級和打補丁的需求也不斷提高。
現有技術中的軟件迭代升級一般為先使用新版本或補丁文件,替換已有文件;然后手動或使用腳本從服務外部執(zhí)行重啟軟件服務操作。由于需要人工的干預,導致升級效率較低;此外,外部發(fā)起的重啟軟件服務操作,未能考慮軟件服務內部的數據狀態(tài),可能會導致升級失敗。
故,如何更高效的加載并執(zhí)行更新軟件升級版本或補丁,是本領域技術人員亟待解決的問題。
技術實現要素:
本發(fā)明實施例的目的是提供一種升級文件的自動加載方法及裝置,不僅高效的加載并執(zhí)行更新軟件升級版本或補丁,還降低了軟件版本升級及打補丁的成本。
為解決上述技術問題,本發(fā)明實施例提供以下技術方案:
本發(fā)明實施例一方面提供了一種升級文件的自動加載方法,包括:
創(chuàng)建監(jiān)聽進程與執(zhí)行進程;
獲取所述監(jiān)聽進程啟動時記錄的升級文件的第一更改時間;
當檢測到當前升級文件的更改時間大于所述第一更改時間時,所述執(zhí)行進程將所述升級文件的狀態(tài)碼設置為第一標識碼,并向所述監(jiān)聽進程發(fā)送所述第一標識碼,所述第一標識碼作為所述當前升級文件的更改信號;
當所述監(jiān)聽進程接收到所述第一標識碼時,重新開啟所述執(zhí)行進程,以用于加載并更新所述升級文件。
可選的,采用預設的環(huán)境變量進行區(qū)分所述監(jiān)聽進程與所述執(zhí)行進程。
可選的,所述環(huán)境變量存儲在所述監(jiān)聽進程創(chuàng)建的鎖文件中。
可選的,所述環(huán)境變量為ics_child。
可選的,還包括:
當檢測到所述監(jiān)聽進程創(chuàng)建的鎖文件不存在時,運行所述執(zhí)行進程將狀態(tài)碼設置為第二標識碼,并向所述監(jiān)聽進程發(fā)送所述第二標識碼,以用于提示所述鎖文件不存在。
可選的,還包括:
判斷所述監(jiān)聽進程創(chuàng)建的鎖文件的更新時間是否延遲預設時間;
當判定所述鎖文件的更新時間延遲預設時間時,運行所述執(zhí)行進程將狀態(tài)碼設置為第三標識碼,并向所述監(jiān)聽進程發(fā)送所述第三標識碼,以用于提示所述鎖文件未更新。
可選的,還包括:
當檢測到所述監(jiān)聽進程的狀態(tài)為預設的默認值時,則休眠所述監(jiān)聽進程。
本發(fā)明實施例另一方面提供了一種升級文件的自動加載裝置,包括:
構建進程模塊,用于創(chuàng)建監(jiān)聽進程與執(zhí)行進程;
獲取模塊,用于獲取所述監(jiān)聽進程啟動時記錄的升級文件的第一更改時間;
檢測更改信號模塊,用于當檢測到當前升級文件的更改時間大于所述第一更改時間時,所述執(zhí)行進程將所述升級文件的狀態(tài)碼設置為第一標識碼,并向所述監(jiān)聽進程發(fā)送所述第一標識碼,所述第一標識碼作為所述當前升級文件的更改信號;
文件更新模塊,用于當所述監(jiān)聽進程接收到所述第一標識碼時,重新開啟所述執(zhí)行進程,以用于加載并更新所述升級文件。
可選的,還包括:
鎖文件檢測模塊,用于當檢測到所述監(jiān)聽進程創(chuàng)建的鎖文件不存在時,運行所述執(zhí)行進程將狀態(tài)碼設置為第二標識碼,并向所述監(jiān)聽進程發(fā)送所述第二標識碼,以用于提示所述鎖文件不存在。
可選的,還包括:
鎖文件更新檢測模塊,用于判斷所述監(jiān)聽進程創(chuàng)建的鎖文件的更新時間是否延遲預設時間;當判定所述鎖文件的更新時間延遲預設時間時,運行所述執(zhí)行進程將狀態(tài)碼設置為第三標識碼,并向所述監(jiān)聽進程發(fā)送所述第三標識碼,以用于提示所述鎖文件未更新。
本發(fā)明實施例提供了一種升級文件的自動加載方法,獲取監(jiān)聽進程啟動時記錄的升級文件的第一更改時間;當檢測到當前升級文件的更改時間大于第一更改時間時,執(zhí)行進程將升級文件的狀態(tài)碼設置為第一標識碼,然后向監(jiān)聽進程發(fā)送該狀態(tài)碼,用于表示當前升級文件的更改信號;當監(jiān)聽進程接收到第一標識碼時,重新開啟執(zhí)行進程,以用于加載并更新升級文件。
本申請?zhí)峁┑募夹g方案的優(yōu)點在于,通過執(zhí)行進程查看文件的更新狀態(tài),并由監(jiān)聽進程進行重啟執(zhí)行進程用于加載更改過的升級軟件,根據軟件本身數據狀態(tài)自動執(zhí)行重啟操作,從而實現了升級軟件的自加載并更新,提高了軟件升級的效率,充分考慮軟件服務內部的數據狀態(tài),有利于提高軟件升級的成功率,降低了軟件版本升級及打補丁的成本。
此外,本發(fā)明實施例還針對升級文件的自動加載方法提供了相應的實現裝置,進一步使得所述方法更具有實用性,所述裝置具有相應的優(yōu)點。
附圖說明
為了更清楚的說明本發(fā)明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種升級文件的自動加載方法的流程示意圖;
圖2為本發(fā)明實施例提供的另一種升級文件的自動加載方法的流程示意圖;
圖3為本發(fā)明實施例提供的升級文件的自動加載裝置的一種具體實施方式結構圖;
圖4為本發(fā)明實施例提供的升級文件的自動加載裝置的另一種具體實施方式結構圖。
具體實施方式
為了使本技術領域的人員更好地理解本發(fā)明方案,下面結合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三”“第四”等是用于區(qū)別不同的對象,而不是用于描述特定的順序。此外術語“包括”和“具有”以及他們任何變形,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產品或設備沒有限定于已列出的步驟或單元,而是可包括沒有列出的步驟或單元。
在介紹了本發(fā)明實施例的技術方案后,下面詳細的說明本申請的各種非限制性實施方式。
首先參見圖1,圖1為本發(fā)明實施例提供的一種升級文件的自動加載方法的流程示意圖,本發(fā)明實施例可包括以下內容:
s101:創(chuàng)建監(jiān)聽進程與執(zhí)行進程。
監(jiān)聽進程可使用進程管理模塊管理進程的運行,用于監(jiān)聽升級文件的更改信號,并啟動執(zhí)行進程;執(zhí)行進程可采用多線程技術,用于查看所述升級文件的狀態(tài)并發(fā)送狀態(tài)碼,加載更改后的升級文件??刹捎妙A設的環(huán)境變量進行區(qū)分監(jiān)聽進程與執(zhí)行進程,例如可通過設置環(huán)境變量ics_child區(qū)分監(jiān)聽進程與執(zhí)行進程。
s102:獲取所述監(jiān)聽進程啟動時記錄的升級文件的第一更改時間。
s103:當檢測到當前升級文件的更改時間大于所述第一更改時間時,所述執(zhí)行進程將所述升級文件的狀態(tài)碼設置為第一標識碼,并向所述監(jiān)聽進程發(fā)送所述第一標識碼,所述第一標識碼作為所述當前升級文件的更改信號。
監(jiān)聽進程執(zhí)行監(jiān)聽準備工作并開啟執(zhí)行進程,處理升級文件的更改信號,對應實現代碼請參閱代碼1。監(jiān)聽進程的監(jiān)聽準備工作可包括創(chuàng)建臨時鎖文件,并將其存放于環(huán)境變量中,用于執(zhí)行進程檢測監(jiān)聽進程是否正常;開啟執(zhí)行進程,并設置ics_child用于運行執(zhí)行進程,然后循環(huán)查看執(zhí)行進程返回狀態(tài)碼。
升級文件的更改可以文件的修改時間為依據,例如,當監(jiān)聽進程啟動時記錄的升級文件的第一更改時間為mtime,當當前升級文件的修改時間大于mtime時,可判定當前升級文件已經發(fā)生了更改,即升級文件已經更新了。
執(zhí)行進程的實現代碼請參閱代碼2,當執(zhí)行進程查看升級軟件發(fā)生更改后,設置狀態(tài)碼為第一標識碼,第一標識碼為預先協議的,作為當前升級文件的更改信號。例如第一標識碼可為3,當狀態(tài)碼為3時,表示升級文件發(fā)生更改,重新開啟執(zhí)行進程。s104:當所述監(jiān)聽進程接收到所述第一標識碼時,重新開啟所述執(zhí)行進程,以用于加載并更新所述升級文件。
當監(jiān)聽進程接收到第一標識碼的狀態(tài)碼時,證明當前的升級軟件已發(fā)生更改,故重新開啟執(zhí)行進程,此時,執(zhí)行進程執(zhí)行軟件服務線程,即自動加載升級文件,例如補丁,實現代碼請參閱代碼3。
由上可知,軟件服務識別文件升級的更改,并根據軟件服務本身數據狀態(tài)自動執(zhí)行重啟操作??商岣呱壩募詣痈碌某晒β?。
需要說明的是,監(jiān)聽進程循環(huán)查看執(zhí)行進程返回狀態(tài)碼,當檢測到監(jiān)聽進程的狀態(tài)為預設的默認值時,則休眠所述監(jiān)聽進程。即s103-s104為循環(huán)執(zhí)行,直至休眠。
預設的默認值可為0,當監(jiān)聽進程的狀態(tài)為默認值時,表明當前升級文件未發(fā)生更改,當其不為默認值時,表明升級文件發(fā)生更改。休眠時間可預先設置,例如1s。
代碼1:監(jiān)聽進程
代碼2:執(zhí)行進程
代碼3:集成自動加載升級功能
在本發(fā)明實施例提供的技術方案中,通過執(zhí)行進程查看文件的更新狀態(tài),并由監(jiān)聽進程進行重啟執(zhí)行進程用于加載更改過的升級軟件,根據軟件本身數據狀態(tài)自動執(zhí)行重啟操作,從而實現了升級軟件的自加載并更新,提高了軟件升級的效率,充分考慮軟件服務內部的數據狀態(tài),有利于提高軟件升級的成功率,降低了軟件版本升級及打補丁的成本。
在一種具體的實施方式中,請參閱圖2所示,基于上述實施例,還可包括:
s105:當檢測到所述監(jiān)聽進程創(chuàng)建的鎖文件不存在時,運行所述執(zhí)行進程將狀態(tài)碼設置為第二標識碼,并向所述監(jiān)聽進程發(fā)送所述第二標識碼,以用于提示所述鎖文件不存在。
當監(jiān)聽進程發(fā)現執(zhí)行進程返回的狀態(tài)碼為第二標識碼時,鎖文件缺失,監(jiān)聽進程創(chuàng)建鎖文件,例如第二標識碼可為2,當狀態(tài)碼為2時,表明鎖文件不存在。
s106:判斷所述監(jiān)聽進程創(chuàng)建的鎖文件的更新時間是否延遲預設時間。
s107:當判定所述鎖文件的更新時間延遲預設時間時,運行所述執(zhí)行進程將狀態(tài)碼設置為第三標識碼,并向所述監(jiān)聽進程發(fā)送所述第三標識碼,以用于提示所述鎖文件未更新。
預設延遲時間可為5s,當然,也可為其他值,這均不影響本申請的實現。
當監(jiān)聽進程發(fā)現執(zhí)行進程返回的狀態(tài)碼為第三標識碼時,鎖文件未更新,監(jiān)聽進程更新當前鎖文件,例如第二標識碼可為1,當狀態(tài)碼為1時,表明鎖文件未更新。
還需要說明的是,監(jiān)聽進程循環(huán)查看執(zhí)行進程返回狀態(tài)碼,即s105-s107循環(huán)執(zhí)行,直至休眠。
執(zhí)行進程查看鎖文件的存在與更新狀態(tài),及時進行反饋,有利于盡快發(fā)現,并進行創(chuàng)建或更新,充分考慮軟件服務內部的數據狀態(tài),有利于提高軟件升級的成功率。
本發(fā)明實施例還針對升級文件的自動加載方法提供了相應的實現裝置,進一步使得所述方法更具有實用性。下面對本發(fā)明實施例提供的升級文件的自動加載裝置進行介紹,下文描述的升級文件的自動加載裝置與上文描述的升級文件的自動加載方法可相互對應參照。
參見圖3,圖3為本發(fā)明實施例提供的升級文件的自動加載裝置在一種具體實施方式下的結構圖,該裝置可包括:
構建進程模塊301,用于創(chuàng)建監(jiān)聽進程與執(zhí)行進程。
獲取模塊302,用于獲取所述監(jiān)聽進程啟動時記錄的升級文件的第一更改時間。
檢測更改信號模塊303,用于當檢測到當前升級文件的更改時間大于所述第一更改時間時,所述執(zhí)行進程將所述升級文件的狀態(tài)碼設置為第一標識碼,并向所述監(jiān)聽進程發(fā)送所述第一標識碼,所述第一標識碼作為所述當前升級文件的更改信號。
文件更新模塊304,用于當所述監(jiān)聽進程接收到所述第一標識碼時,重新開啟所述執(zhí)行進程,以用于加載并更新所述升級文件。
在本申請的一些實施方式中,請參閱圖4,所述裝置可包括鎖文件檢測模塊305,用于當檢測到所述監(jiān)聽進程創(chuàng)建的鎖文件不存在時,運行所述執(zhí)行進程將狀態(tài)碼設置為第二標識碼,并向所述監(jiān)聽進程發(fā)送所述第二標識碼,以用于提示所述鎖文件不存在。
可選的,在本申請的一些實施方式中,請參閱圖4,所述裝置例如還可以包括鎖文件檢測更新模塊306,所述鎖文件檢測更新模塊306可包括:
判斷單元3061,用于判斷所述監(jiān)聽進程創(chuàng)建的鎖文件的更新時間是否延遲預設時間;
更新檢測單元3062,用于當判定所述鎖文件的更新時間延遲預設時間時,運行所述執(zhí)行進程將狀態(tài)碼設置為第三標識碼,并向所述監(jiān)聽進程發(fā)送所述第三標識碼,以用于提示所述鎖文件未更新。
本發(fā)明實施例所述升級文件的自動加載裝置的各功能模塊的功能可根據上述方法實施例中的方法具體實現,其具體實現過程可以參照上述方法實施例的相關描述,此處不再贅述。
由上可知,本發(fā)明實施例通過執(zhí)行進程查看文件的更新狀態(tài),并由監(jiān)聽進程進行重啟執(zhí)行進程用于加載更改過的升級軟件,根據軟件本身數據狀態(tài)自動執(zhí)行重啟操作,從而實現了升級軟件的自加載并更新,提高了軟件升級的效率,充分考慮軟件服務內部的數據狀態(tài),有利于提高軟件升級的成功率,降低了軟件版本升級及打補丁的成本。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發(fā)明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(ram)、內存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術領域內所公知的任意其它形式的存儲介質中。
以上對本發(fā)明所提供的一種升級文件的自動加載方法以及裝置進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權利要求的保護范圍內。