新四季網

動態刷新數據的方法

2023-05-23 23:36:16 2

專利名稱:動態刷新數據的方法
技術領域:
本發明涉及數據處理,特別是涉及一種動態刷新數據的方法。
背景技術:
在一些公共服務終端上,為客戶提供不同服務時,需要對終端設備或運行其上的業務軟體進行相應的配置。傳統的對配置信息的修改主要實現方式是「首先停止業務軟體,再修改配置信息,然後再重新開啟業務軟體」。這樣程序就可以按照新的配置來進行處理。這種修改配置的方式存在如下問題:1.操作步驟繁瑣,需要先停止業務軟體,然後再修改配置信息,最後再重新開啟業務軟體;2.當業務軟體所提供的功能比較多時,而本次修改的配置信息對其他功能的運行沒有影響時,若停止該業務軟體會對其他功能的正常運作造成影響;3.對某些不允許中間暫停的程序則必須要等到業務結束時才可以修改配置;4.不能滿足某些軟體要求系統每天24小時不間斷運行的要求。一種典型的需要持續運行的公共服務終端如軌道交通中的進出站閘機,進出站閘機可以通過修改配置來使其成為入口或出口。在軌道交通管理系統中,參數文件由清算管理中心(AFC clearing center, ACC)中心統一管理。當需要更新設備軟體或者業務軟體的參數配置時,首先由ACC生成參數文件後下發至各線路計算機(Line Computer, LC)中心,然後再由各LC中心轉發至本線路下各個車站計算機(Station Computer, SC)。當各車站接收到LC發送的參數文件後,將參數文件轉發至本站內的各個終端設備。各終端設備為了使接收到的參數信息立即生效,則必須重新啟動設備軟體,這樣在重啟過程中無法提供服務,會影響乘客的正常通行。

發明內容
基於此,有必要提供一種不需要停止業務軟體即可使配置即時生效的動態刷新數據的方法。一種動態刷新數據的方法,包括如下步驟:建立需要被刷新的目標函數與事件的關聯關係,所述事件由操作觸發;監聽事件,當事件觸發時,檢測內存控制開關的狀態;當所述內存控制開關處於第一狀態時,根據所述觸發的事件加載相應的數據到內存中的第一數據區,並調用所有關聯的目標函數進行數據刷新;當所述內存控制開關處於第二狀態時,根據所述觸發的事件加載相應的數據到內存中的第二數據區,並調用所有關聯的目標函數進行數據刷新。在其中一個實施例中,所述第一數據區和第二數據區互為備用數據區。在其中一個實施例中,所述建立需要被刷新的目標函數與事件的關聯關係的步驟在設備或業務軟體初始化時完成;當初始化時,將內存控制開關置於第一狀態或第二狀態,以默認的數據執行刷新後即開始監聽事件的步驟;在每次事件觸發且成功加載數據後將內存控制開關的狀態置於與所述第一狀態或第二狀態相對的第二狀態或第一狀態。在其中一個實施例中,所述監聽事件的步驟具體包括:讀取事件列表,所述事件列表包含由操作觸發的事件;判斷所述事件列表中是否有未處理事件,若是,則根據選擇策略選擇其中一個事件,同時置刷新標識為真;否則,置刷新標識為假,同時繼續執行判斷事件列表中是否有未處理事件的步驟。在其中一個實施例中,所述監聽事件的步驟還包括:在加載數據的步驟執行成功時更新所述事件列表。在其中一個實施例中,還包括判斷所述刷新標識是否為真的步驟,若所述刷新標識為真,則執行加載數據的步驟,否則休眠預設時間後繼續判斷所述刷新標識是否為真。在其中一個實施例中,所述預設時間為10毫秒。在其中一個實施例中,還包括判斷數據是否加載成功的步驟,當數據加載成功時,將內存控制開關置為另一狀態,並設置事件處理結果為成功;否則設置事件處理結果為失敗,並轉向判斷所述刷新標識是否為真的步驟。在其中一個實施例中,所述根據觸發的事件加載的數據為配置文件。上述方法通過事件觸發機制來執行數據刷新操作,同時在每次刷新數據時,在另外的內存區域加載數據並執行數據刷新操作,使得程序既讀取了新的配置數據,實現了配置的即時修改,又不會導致程序運行中斷。


圖1和圖2為一實施例的動態刷新數據的方法流程圖;圖3為內存區域劃分及控制讀寫數據的示意圖。
具體實施例方式如圖1和圖2所示,為一實施例的動態刷新數據的方法流程圖。該方法基於統一接口的函數調用和內存交換技術,實現進程不受中斷地讀取修改後的配置文件的目的,達到使配置即時生效的效果。如圖3所示,該方法在內存中劃分用於存儲數據的第一數據區和第二數據區,並採用內存控制開關控制往第一數據區或第二數據區寫數據(即保存數據),或者從第一數據區或第二數據區讀數據。第一數據區和第二數據區互為備用數據區。該方法包括如下步驟:SllO:運行初始化線程。程序啟動時調用初始化接口,進行初始化數據操作。初始化線程主要執行如下步驟。步驟Slll:建立需要被刷新的目標函數與事件的關聯關係,所述事件由操作觸發。以事件驅動的程序中,首先需要將目標函數註冊,即建立需要被刷新的目標函數與事件的關聯關係(或者添加與該事件對應的處理函數)。觸發事件的操作包括修改設備或軟體配置的操作等。當事件被觸發時,相應的處理函數(目標函數)被調用,以完成相應的功能。在一個實施例中,利用函數指針註冊目標函數。除此之外,當初始化時,還包括:
步驟S113:將內存控制開關置於第一狀態或第二狀態。本步驟用於指定下一次加載的數據保存的內存區域。步驟S115:以默認的數據執行刷新操作。要刷新數據,首先需要加載數據到內存中,本步驟依賴於步驟S140,若步驟S140中加載數據操作成功,則執行步驟S117,否則停止。步驟S117:將內存控制開關置於與第一狀態或第二狀態相對的第二狀態或第一狀態。數據加載成功後,也即讀入到內存相應數據區後,業務軟體即可通過統一的調用接口來刷新數據。然後將內存控制開關置於相反的狀態,也即下次事件觸發時,將數據加載到內存的兩個數據區中的另一個數據區。通常來說,系統中會有一個默認的主數據區,另一個則是備用數據區。例如本實施例中,第一數據區為主數據區,第二數據區為備用數據區。在程序初始化時,將數據默認加載到主數據區,因此步驟S113中也將內存控制開關置於第一狀態,從而使得在刷新數據時能夠從作為主數據區的第一數據區中讀取用於刷新的數據。之後,內存控制開關的狀態被置為第二狀態。例如,在一個實施例中,初始化時,將內存控制開關的狀態置為FALSE,然後加載並刷新數據。若成功加載,那麼加載完成後將內存控制開關的狀態置為TRUE。在步驟SllO的初始化完成之後,即開始步驟S120:運行事件掃描線程。事件掃描線程用於監聽系統中產生的事件,並進行相關的處理。主要包括:步驟S121:檢測事件列表中是否有未處理事件。若是,則執行步驟S123,否則執行步驟S125後返回步驟Sm。當需要刷新數據時,執行數據刷新操作,繼而觸發事件,不同的操作不斷產生時,就會觸發多個事件。多個事件根據觸發時間,依次保存在事件列表中。若事件列表中存在未處理事件,則代表有刷新數據的操作,此時需要對該事件進行處理。本步驟通過循環檢測的方式實現監聽。步驟S123:根據選擇策略選擇其中一個事件,設置刷新標識為真。本實施例的選擇策略即先到先得(FIFO),事件按照到來的時間依次從小到大編號,每次都選擇編號最小的事件。步驟S125:設置刷新標識為假。上述的刷新標識用於告知數據加載線程是否有事件觸發,從而決定是否加載數據。經過步驟S12f S125,事件掃描線程輸出值為真或假的刷新標識。步驟S130:運行數據刷新線程。本步驟用於執行刷新數據的操作。包括如下步驟:步驟S131:檢測刷新標識是否為真。若是,則執行步驟S140,否則執行步驟S133並返回步驟S131。當刷新標識為真時,執行步驟S140對事件進行處理。否則循環執行檢測刷新標識是否為真的步驟。步驟S133:睡眠預設時間。本實施例中,預設時間優選為10毫秒。同時,在數據刷新線程內,還執行步驟S135:檢測步驟S140中加載數據的操作是否成功。若是,則執行步驟S137,否則返回步驟S131。步驟S137:將內存控制開關的狀態取反。也即從第一狀態變成第二狀態,或者從第二狀態變為第一狀態。每次事件觸發並且數據加載成功後,將內存控制開關的狀態取反,以指定下一次事件觸發時將數據加載到另一數據區。步驟S130還根據步驟S140的執行結果生成事件處理的結果。
該事件處理的結果還被事件掃描線程(步驟S120)讀取,並執行如下步驟。步驟S127:判斷事件是否處理完成。若是,則執行步驟S129,否則返回執行步驟S127。步驟S129:更新事件列表。將已經處理完成的事件的狀態更改為已處理。至此,一個事件被處理完成,同時刷新操作被執行。若事件列表中還有其他的事件,則重複上述自步驟S121開始的步驟處理下一事件。步驟S140:運行數據加載線程。包括:步驟S141:檢測內存控制開關的狀態。若內存控制開關的狀態為第一狀態,則執行步驟S143,若內存控制開關的狀態為第二狀態,則執行步驟S145。步驟S143:調用所有建立關係的目標函數,加載數據,並將數據存儲在第一數據區。以內存中的第一數據區運行目標函數,執行數據刷新操作。步驟S145:調用所有建立關係的目標函數,加載數據,並將數據存儲在第二數據區。以內存中的第二數據區運行目標函數,執行數據刷新操作。步驟S147:返回執行結果。本實施例方法中所涉及的根據觸發的事件加載的數據為配置文件,用於實時更改設備或業務軟體的配置。以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但並不能因此而理解為對本發明專利範圍的限制。應當指出的是,對於本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬於本發明的保護範圍。因此,本發明專利的保護範圍應以所附權利要求為準。
權利要求
1.一種動態刷新數據的方法,包括如下步驟: 建立需要被刷新的目標函數與事件的關聯關係,所述事件由操作觸發; 監聽事件,當事件觸發時,檢測內存控制開關的狀態; 當所述內存控制開關處於第一狀態時,根據所述觸發的事件加載相應的數據到內存中的第一數據區,並調用所有關聯的目標函數進行數據刷新; 當所述內存控制開關處於第二狀態時,根據所述觸發的事件加載相應的數據到內存中的第二數據區,並調用所有關聯的目標函數進行數據刷新。
2.根據權利要求1所述的動態刷新數據的方法,其特徵在於,所述第一數據區和第二數據區互為備用數據區。
3.根據權利要求1所述的動態刷新數據的方法,其特徵在於,所述建立需要被刷新的目標函數與事件的關聯關係的步驟在設備或業務軟體初始化時完成;當初始化時,將內存控制開關置於第一狀態或第二狀態,以默認的數據執行刷新後即開始監聽事件的步驟;在每次事件觸發且成功加載數據後將內存控制開關的狀態置於與所述第一狀態或第二狀態相對的第二狀態或第一狀態。
4.根據權利要求1所述的動態刷新數據的方法,其特徵在於,所述監聽事件的步驟具體包括: 讀取事件列表,所述事件列表包含由操作觸發的事件; 判斷所述事件列表中是否有未處理事件,若是,則根據選擇策略選擇其中一個事件,同時置刷新標識為真;否則,置刷新標識為假,同時繼續執行判斷事件列表中是否有未處理事件的步驟。
5.根據權利要求4所述的動態刷新數據的方法,其特徵在於,所述監聽事件的步驟還包括:在加載數據的步驟執行成功時更新所述事件列表。
6.根據權利要求4所述的動態刷新數據的方法,其特徵在於,還包括判斷所述刷新標識是否為真的步驟,若所述刷新標識為真,則執行加載數據的步驟,否則休眠預設時間後繼續判斷所述刷新標識是否為真。
7.根據權利要求6所述的動態刷新數據的方法,其特徵在於,所述預設時間為10毫秒。
8.根據權利要求6所述的動態刷新數據的方法,其特徵在於,還包括判斷數據是否加載成功的步驟,當數據加載成功時,將內存控制開關置為另一狀態,並設置事件處理結果為成功;否則設置事件處理結果為失敗,並轉向判斷所述刷新標識是否為真的步驟。
9.根據權利要求1至8任一項所述的動態刷新數據的方法,其特徵在於,所述根據觸發的事件加載的數據為配置文件。
全文摘要
本發明公開一種動態刷新數據的方法,包括如下步驟建立需要被刷新的目標函數與事件的關聯關係,所述事件由操作觸發;監聽事件,當事件觸發時,檢測內存控制開關的狀態;當所述內存控制開關處於第一狀態時,根據所述觸發的事件加載相應的數據到內存中的第一數據區,並調用所有關聯的目標函數進行數據刷新;當所述內存控制開關處於第二狀態時,根據所述觸發的事件加載相應的數據到內存中的第二數據區,並調用所有關聯的目標函數進行數據刷新。上述方法能夠實現配置即時生效。
文檔編號G07C9/00GK103093529SQ20131000915
公開日2013年5月8日 申請日期2013年1月10日 優先權日2013年1月10日
發明者範濱, 胡宇舟, 李強, 楊興城, 吳光冠, 孫立中 申請人:高新現代智能系統股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀