欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種升級狀態(tài)數(shù)據(jù)管理裝置、系統(tǒng)和方法與流程

文檔序號:11877981閱讀:259來源:國知局
一種升級狀態(tài)數(shù)據(jù)管理裝置、系統(tǒng)和方法與流程

本發(fā)明涉及通信領域,尤其涉及一種升級狀態(tài)數(shù)據(jù)管理裝置、系統(tǒng)和方法。



背景技術:

隨著移動通信以及移動互聯(lián)網(wǎng)的快速發(fā)展,移動終端的持有量在不斷上升,大量的移動終端的用戶進行的FOTA(Firmware Over-The-Air,固件空中升級)升級,F(xiàn)OTA系統(tǒng)收集的用戶終端的升級狀態(tài)數(shù)據(jù)也隨之大量增長。這種情況下,部分升級狀態(tài)數(shù)據(jù)的上報相對會有所延遲,并且升級狀態(tài)數(shù)據(jù)采用的是按閾值進行分表存儲的策略,當系統(tǒng)處于持續(xù)大并發(fā)的情況下,由于產(chǎn)生的升級狀態(tài)數(shù)據(jù)量較大,因此,分表很容易在短時間內(nèi)到達閾值,則MOM(Message-Oriented Middleware,面向消息的中間件)中間件產(chǎn)生新的分表,使得終端進行升級處理過程中,針對一次升級處理所產(chǎn)生的升級狀態(tài)數(shù)據(jù)不能存儲到其對應的分表下,造成升級狀態(tài)數(shù)據(jù)存儲準確性的下降,進而造成升級狀態(tài)數(shù)據(jù)的統(tǒng)計失真。



技術實現(xiàn)要素:

本發(fā)明的主要目的在于提出一種升級狀態(tài)數(shù)據(jù)管理裝置、系統(tǒng)和方法,旨在解決無法將升級狀態(tài)數(shù)據(jù)存儲到對應的位置,使得存儲的升級狀態(tài)數(shù)據(jù)準確性下降,造成升級狀態(tài)數(shù)據(jù)統(tǒng)計失真的問題。

為實現(xiàn)上述目的,本發(fā)明實施例提供一種升級狀態(tài)數(shù)據(jù)管理裝置,包括:

數(shù)據(jù)存儲處理模塊,用于獲取升級狀態(tài)數(shù)據(jù),并根據(jù)升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;

數(shù)據(jù)回寫處理模塊,用于將異常表中存儲的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到升級狀態(tài)數(shù)據(jù)對應的正常分表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;

數(shù)據(jù)統(tǒng)計處理模塊,用于對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。

其中,數(shù)據(jù)存儲處理模塊還用于:在將升級狀態(tài)數(shù)據(jù)存儲到異常表中之前,判斷異常表中是否存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù);

當異常表中不存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù)時,從升級狀態(tài)數(shù)據(jù)對應的會話身份標識中解析出搜包時間,將搜包時間和升級狀態(tài)數(shù)據(jù)對應存儲到異常表中;

當異常表中存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù)時,將升級狀態(tài)數(shù)據(jù)相對于相同會話身份標識數(shù)據(jù)的增量存儲到異常表中對應位置。

其中,會話身份標識信息依次包括:當前服務器網(wǎng)絡協(xié)議字段,當前時間戳字段,5位隨機字符字段,1位隨機數(shù)字廠商字段,終端型號字段和搜包時間字段。

其中,數(shù)據(jù)回寫處理模塊還用于:將異常表中的升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而確定升級狀態(tài)數(shù)據(jù)對應的正常分表;將升級狀態(tài)數(shù)據(jù)存儲到正常分表中。

進一步的,本發(fā)明實施例提供了一種升級狀態(tài)數(shù)據(jù)管理系統(tǒng),包括上述升級數(shù)據(jù)管理裝置。

進一步的,本發(fā)明實施例還提供了一種升級狀態(tài)數(shù)據(jù)管理方法,包括:

獲取升級狀態(tài)數(shù)據(jù),根據(jù)升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;

將異常表中存儲的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到升級狀態(tài)數(shù)據(jù)對應的正常分表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;

對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。

其中,將升級狀態(tài)數(shù)據(jù)存儲到異常表中之前,還包括:判斷異常表中是否存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù);

當異常表中不存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù)時,從升級狀態(tài)數(shù)據(jù)對應的會話身份標識中解析出搜包時間,將搜包時間和升級狀態(tài)數(shù) 據(jù)對應存儲到異常表中;

當異常表中存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù)時,將升級狀態(tài)數(shù)據(jù)相對于相同會話身份標識數(shù)據(jù)的增量存儲到異常表中對應搜包時間位置。

其中,會話身份標識信息依次包括:當前服務器網(wǎng)絡協(xié)議字段,當前時間戳字段,5位隨機字符字段,1位隨機數(shù)字廠商字段,終端型號字段和搜包時間字段。

其中,升級狀態(tài)隊列處理裝置將異常表中的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到其對應的正常分表中,包括:將異常表中的升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而確定異常表中的升級狀態(tài)數(shù)據(jù)對應的正常分表;將升級狀態(tài)數(shù)據(jù)存儲到正常分表中。

其中,對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理,包括:

清除標記為統(tǒng)計失效的正常分表對應的升級狀態(tài)數(shù)據(jù)統(tǒng)計記錄后,對正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。

本發(fā)明實施例提供的升級狀態(tài)數(shù)據(jù)管理裝置、系統(tǒng)和方法,通過獲取升級狀態(tài)數(shù)據(jù),并判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間,根據(jù)判斷結(jié)果將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;然后將異常表中的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則存儲到其對應的正常分表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;再對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。保證升級過程中的升級狀態(tài)數(shù)據(jù)都可以存儲到其對應的正常分表中,從而提高了升級狀態(tài)數(shù)據(jù)存儲的完整性和準確性,同時也提升了升級狀態(tài)數(shù)據(jù)統(tǒng)計的準確性。

附圖說明

圖1實現(xiàn)本發(fā)明優(yōu)選實施例的服務器示意圖;

圖2為實現(xiàn)本發(fā)明優(yōu)選實施例的FOTA系統(tǒng)示意圖;

圖3為實現(xiàn)本發(fā)明優(yōu)選實施例的FOTA系統(tǒng)升級數(shù)據(jù)流向圖;

圖4為實現(xiàn)本發(fā)明優(yōu)選實施例的FOTA系統(tǒng)的中間件中的分表生成示意圖;

圖5為實現(xiàn)本發(fā)明實施例一的升級狀態(tài)數(shù)據(jù)管理裝置示意圖;

圖6為本發(fā)明實施例一的升級狀態(tài)數(shù)據(jù)管理系統(tǒng)示意圖;

圖7為本發(fā)明實施例二的升級狀態(tài)數(shù)據(jù)管理方法流程圖;

圖8為本發(fā)明實施例三的升級狀態(tài)數(shù)據(jù)管理系統(tǒng)中對升級狀態(tài)數(shù)據(jù)進行存儲處理的流程圖。

本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。

具體實施方式

應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

現(xiàn)在將參考附圖描述實現(xiàn)本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。

如圖1所示,為實現(xiàn)本發(fā)明各個實施例一個可選的服務器的結(jié)構(gòu)示意圖,該服務器至少包括:輸入輸出(IO)總線11、處理器12、存儲器13、內(nèi)存14和通信裝置15。其中,

輸入輸出(IO)總線11分別與自身所屬的服務器的其它部件(處理器12、存儲器13、內(nèi)存14和通信裝置15)連接,并且為其它部件提供傳送線路。

處理器12通??刂谱陨硭鶎俚姆掌鞯目傮w操作。例如,處理器12執(zhí)行計算和確認等操作。其中,處理器12可以是中央處理器(CPU)。

存儲器13存儲處理器可讀、處理器可執(zhí)行的軟件代碼,其包含用于控制處理器12執(zhí)行本文描述的功能的指令(即軟件執(zhí)行功能)。

內(nèi)存14,一般采用半導體存儲單元,包括隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE),RAM是其中最重要的存儲器。內(nèi)存14是計算機中重要的部件之一,它是與CPU12進行溝通的橋梁,計算機中所有程序的運行都是在內(nèi)存中進行的,其作用是用于暫時存放CPU12中的運算數(shù)據(jù),以及與硬盤等外部存儲器交換的數(shù)據(jù),只要計算機在運行中,CPU12就會把需要運算的數(shù)據(jù)調(diào)到內(nèi)存中進行運算,當運算完成后CPU12 再將結(jié)果傳送出來,內(nèi)存的運行也決定了計算機的穩(wěn)定運行。

通信裝置15,通常包括一個或多個組件,其允許自身所屬的服務器與無線通信系統(tǒng)或網(wǎng)絡之間的無線電通信。

圖2為實現(xiàn)本發(fā)明各個實施例的FOTA系統(tǒng)示意圖,請參見圖2,該FOTA系統(tǒng)應至少包括如下子系統(tǒng)模塊:FOTA客戶端31,即終端;FOTA服務器32,該FOTA服務器32可以是圖1所示的服務器,在升級過程中,F(xiàn)OTA服務器32通過通信裝置15與終端及系統(tǒng)中的Redis(key-value數(shù)據(jù)庫,鍵值數(shù)據(jù)庫)集群33等其他設備間進行通信,通過存儲器13存儲終端發(fā)來的升級狀態(tài)數(shù)據(jù)等其他數(shù)據(jù),通過處理器12和內(nèi)存協(xié)調(diào)配合完成升級處理;Redis集群33,即Redis分布式緩存系統(tǒng);MOM中間件34,該MOM中間件34可以是分布式延遲異步持久化中間件;數(shù)據(jù)庫35,即數(shù)據(jù)存儲系統(tǒng);后臺運營管理系統(tǒng)36,即數(shù)據(jù)統(tǒng)計查詢系統(tǒng);運營人員37。具體的,終端的FOTA升級狀態(tài)數(shù)據(jù)流向如圖3所示,F(xiàn)OTA服務器321和FOTA服務器322接收到終端發(fā)送的升級狀態(tài)數(shù)據(jù)后,通過Redis集群33和MOM中間件34的處理,將該升級狀態(tài)數(shù)據(jù)存儲到數(shù)據(jù)庫35中。另外,如附圖4所示,當FOTA系統(tǒng)處于持續(xù)大并發(fā)的情況下,由于產(chǎn)生的升級狀態(tài)數(shù)據(jù)量較大,因此,分表很容易在短時間內(nèi)到達閾值,則MOM中間件34會調(diào)控數(shù)據(jù)庫35中的分布式文件存儲數(shù)據(jù)庫(mongodb)產(chǎn)生新的分表,存儲后續(xù)的升級狀態(tài)數(shù)據(jù)。

這里描述的各種實施方式可以以使用例如計算機軟件、硬件或其任何組合的計算機可讀介質(zhì)來實施。軟件代碼可以由以任何適當?shù)木幊陶Z言編寫的軟件應用程序(或程序)來實施。

基于上述FOTA系統(tǒng)和終端的FOTA升級數(shù)據(jù)流向,為了使本技術領域的人員更好地理解本發(fā)明方案,下面將結(jié)合附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例;需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。

實施例一:

本實施例提出一種升級狀態(tài)數(shù)據(jù)管理裝置,請參見圖5,具體包括數(shù)據(jù)存儲處理模塊41,用于獲取升級狀態(tài)數(shù)據(jù),并根據(jù)升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間將升級狀態(tài)數(shù)據(jù)存儲到對應的正常分表或異常表中;數(shù)據(jù)回寫處理模塊42,用于將異常表中的存儲的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到其對應的正常分表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;數(shù)據(jù)統(tǒng)計處理模塊43,用于對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。本實施例中提供的數(shù)據(jù)存儲處理模塊41的功能具體可以由MOM中間件34中的數(shù)據(jù)持久處理裝置實現(xiàn),數(shù)據(jù)回寫處理模塊42的功能具體可以由MOM中間件34中的升級狀態(tài)隊列處理裝置實現(xiàn),數(shù)據(jù)統(tǒng)計處理模塊43的功能具體可以由后臺運營管理系統(tǒng)36來實現(xiàn)。

具體的,數(shù)據(jù)存儲處理模塊41,用于從服務器獲取升級狀態(tài)數(shù)據(jù),并判斷升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間,根據(jù)判斷結(jié)果將升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表或存儲到異常表中,包括:在升級過程中,終端將需要反饋給FOTA服務器32的升級狀態(tài)數(shù)據(jù)發(fā)送給FOTA服務器32,F(xiàn)OTA服務器32將終端發(fā)送的升級狀態(tài)數(shù)據(jù)存儲到存儲器13中,然后在處理器12和內(nèi)存14的調(diào)控下進行后續(xù)處理。數(shù)據(jù)存儲處理模塊41從FOTA服務器32獲取升級狀態(tài)數(shù)據(jù),獲取到升級狀態(tài)數(shù)據(jù)后先判斷該升級狀態(tài)數(shù)據(jù)是否為第一個升級交互數(shù)據(jù),若該升級狀態(tài)數(shù)據(jù)不是第一個升級交互數(shù)據(jù),則判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間。若該升級狀態(tài)數(shù)據(jù)為第一個升級交互數(shù)據(jù),則判斷該升級狀態(tài)數(shù)據(jù)是否為協(xié)議交互錯誤數(shù)據(jù),具體可以通過該升級狀態(tài)數(shù)據(jù)中是否攜帶協(xié)議交互錯誤標識來判斷其是否為協(xié)議交互錯誤數(shù)據(jù),比如判斷返回信息(resultMsg)字段中的信息前綴是否存在協(xié)議交互錯誤標識FOTA_ERROR字符串,若存在,則該升級狀態(tài)數(shù)據(jù)為協(xié)議交互錯誤數(shù)據(jù),將該升級狀態(tài)數(shù)據(jù)存儲到升級狀態(tài)錯誤表中;當不存在協(xié)議交互錯誤標識FOTA_ERROR字符串時,則進一步判斷上報時間是否超出了預設時間。該預設時間為當前正在進行數(shù)據(jù)存儲的正常分表允許升級狀態(tài)數(shù)據(jù)存儲的時間。

進一步的,數(shù)據(jù)存儲處理模塊41還用于:當上報時間未超出預設時間 時,將升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中;當上報時間超出預設時間時,將升級狀態(tài)數(shù)據(jù)存儲到異常表。

具體的,若該升級狀態(tài)數(shù)據(jù)的上報時間未超出預設時間,則將該升級狀態(tài)數(shù)據(jù)增加當前正常分表的分表名字段存儲到當前正在進行數(shù)據(jù)存儲的正常分表中;若超出了預設時間,則將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,該異常表用于存儲所有上報時間超出預設時間的升級狀態(tài)數(shù)據(jù)。

進一步的,數(shù)據(jù)存儲處理模塊41還用于:在將升級狀態(tài)數(shù)據(jù)存儲到異常表中之前,判斷異常表中是否存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識(sessionID)的數(shù)據(jù),當不存在時,從升級狀態(tài)數(shù)據(jù)對應的會話身份標識中解析出搜包時間,將搜包時間和升級狀態(tài)數(shù)據(jù)對應存儲到異常表中。

具體的,若該升級狀態(tài)數(shù)據(jù)的上報時間超出了預設時間,需要將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,則先判斷在異常表中是否存在與該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù),若存在,則將該升級狀態(tài)數(shù)據(jù)的增量存儲到該異常表中;若不存在,則將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,并且從sessionID中解析出該升級狀態(tài)數(shù)據(jù)對應的搜包時間,將該搜包時間同時存儲到該異常表中與該升級狀態(tài)數(shù)據(jù)對應的位置。

進一步的,sessionID,即會話身份標識信息依次包括:當前服務器網(wǎng)絡協(xié)議(IP)字段,當前時間戳字段,5位隨機字符字段,1位隨機數(shù)字廠商字段,終端型號字段和搜包時間字段。

具體的,在終端與FOTA服務器32交互的整個過程中,唯一標識為sessionID,即在所有的升級狀態(tài):搜包,下載,升級,sessionID都為相同的,要使升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中,就需要升級狀態(tài)數(shù)據(jù)在上報時,無論上報時間是否超時都可找到其對應的正常分表,繼而進行正確的升級狀態(tài)的更新處理,保證原生的升級狀態(tài)數(shù)據(jù)的準確。在當前的分表存儲策略中,索引表存儲了升級狀態(tài)記錄在當前分表的開始和結(jié)束的時間點,因此,這2個時間相關的字段可以作為升級狀態(tài)的更新處理定位標記,當前的sessionID的生成算法為:base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字),即在當前的sessionID中缺少了對分表的定位的相應標識。 本實施例提供的升級狀態(tài)數(shù)據(jù)升級裝置,優(yōu)化sessionID的生成算法,將該算法改進為:base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字-廠商-終端型號-搜包時間),該優(yōu)化后的sessionID依然可作為升級交互過程中的唯一標識。

進一步的,數(shù)據(jù)回寫處理模塊還用于將異常表中存儲的升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而確定異常表中的升級狀態(tài)數(shù)據(jù)對應的正常分表;將升級狀態(tài)數(shù)據(jù)存儲到正常分表中。

具體的,為保證升級狀態(tài)數(shù)據(jù)存儲的準確性,需要將存儲到異常表中的升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中,其具體過程包括:MOM中間件的負責管理集群中所有服務器并提供查詢接口的主服務節(jié)點(master節(jié)點)啟動升級狀態(tài)隊列處理器的運行狀況監(jiān)聽器,當系統(tǒng)為空閑狀態(tài),并且在異常表中存在異常數(shù)據(jù)時,根據(jù)該異常表中存儲的升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而來確定其對應的正常分表。確定異常表中存儲的升級狀態(tài)數(shù)據(jù)對應的分表,可以是先獲取異常表中所有搜包時間中的最小搜包時間與最大搜包時間,比如最小搜包時間為a,最大搜包時間為b,則將時間范圍[a,b]作為回寫時間范圍,即進行后續(xù)回寫處理的數(shù)據(jù)范圍。然后從分表索引表中獲取開始和結(jié)束時間在回寫時間范圍內(nèi)的索引記錄列表。當系統(tǒng)為空閑時獲取索引記錄列表中的分表名以及開始和結(jié)束時間,從異常表中,獲取該搜包開始和結(jié)束時間范圍的升級狀態(tài)數(shù)據(jù)列表,判斷升級狀態(tài)數(shù)據(jù)列表中的升級狀態(tài)數(shù)據(jù)在該分表名對應的正常分表中是否存在相同的sessionID的數(shù)據(jù),當存在時則將該升級狀態(tài)數(shù)據(jù)增量更新到該正常分表中;當不存在時,將該升級狀態(tài)數(shù)據(jù)新增到該正常分表中;然后將分表索引表中該存儲了異常表中的升級狀態(tài)數(shù)據(jù)的正常分表的索引記錄標記為統(tǒng)計失效。

數(shù)據(jù)統(tǒng)計處理模塊43對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理包括:清除標記為統(tǒng)計失效的正常分表對應的升級狀態(tài)數(shù)據(jù)統(tǒng)計記錄后,對正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。該升級狀態(tài)統(tǒng)計數(shù)據(jù)包括存儲升級狀態(tài)數(shù)據(jù)的正常分表的分表名對應的統(tǒng)計中間數(shù)據(jù)和該統(tǒng)計之間數(shù)據(jù)對應的統(tǒng)計處理中間表的已統(tǒng)計狀態(tài)。當清除掉上述升級狀態(tài)數(shù)據(jù)的統(tǒng)計 記錄后,從分表索引表中獲取為未統(tǒng)計狀態(tài)的正常分表列表,進行數(shù)據(jù)統(tǒng)計處理。

本實施例提供的升級狀態(tài)數(shù)據(jù)統(tǒng)計裝置,通過數(shù)據(jù)存儲處理模塊獲取到升級狀態(tài)數(shù)據(jù)后,判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間,根據(jù)判斷結(jié)果將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;然后由數(shù)據(jù)回寫處理模塊將異常表中的升級狀態(tài)數(shù)據(jù)存儲到其對應的正常表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;當需要對升級狀態(tài)數(shù)據(jù)進行統(tǒng)計處理時,由數(shù)據(jù)統(tǒng)計處理模塊對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。保證升級交互過程中的升級狀態(tài)數(shù)據(jù)可以存儲到其對應的正常分表中,從而提高了升級狀態(tài)數(shù)據(jù)存儲的完整性和準確性,同時也提升了升級狀態(tài)數(shù)據(jù)統(tǒng)計的準確性。

本實施例還提供一種升級狀態(tài)數(shù)據(jù)管理系統(tǒng),請參見圖6,包括上述升級狀態(tài)數(shù)據(jù)管理裝置,本實施例提供的升級狀態(tài)數(shù)據(jù)統(tǒng)計系統(tǒng),通過升級狀態(tài)數(shù)據(jù)管理裝置獲取到升級狀態(tài)數(shù)據(jù)后,判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間,根據(jù)判斷結(jié)果將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;然后將異常表中的升級狀態(tài)數(shù)據(jù)回寫到其對應的正常表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;當需要對升級狀態(tài)數(shù)據(jù)進行統(tǒng)計處理時,再對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。保證了升級交互數(shù)據(jù)可以存儲到其對應的正常分表中,從而提高了升級狀態(tài)數(shù)據(jù)存儲的完整性和準確性,同時也提升了升級狀態(tài)數(shù)據(jù)統(tǒng)計的準確性。

實施例二:

本實施例提出一種升級狀態(tài)數(shù)據(jù)管理方法,請參見圖7,包括:

步驟S101,獲取升級狀態(tài)數(shù)據(jù),根據(jù)升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中。

具體的,接收到服務器發(fā)送的升級狀態(tài)數(shù)據(jù)后,先判斷該升級狀態(tài)數(shù)據(jù)是否為第一個升級交互數(shù)據(jù),若該升級狀態(tài)數(shù)據(jù)不是第一個升級交互數(shù)據(jù),則判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間。若該升級狀態(tài)數(shù)據(jù)為第一個升級交互數(shù)據(jù),則判斷該升級狀態(tài)數(shù)據(jù)是否為協(xié)議交互錯誤數(shù)據(jù),具體可以通過該升級狀態(tài)數(shù)據(jù)中是否攜帶協(xié)議交互錯誤標識來判斷其是否為 協(xié)議交互錯誤數(shù)據(jù),比如判斷返回信息(resultMsg)字段中的信息前綴是否存在協(xié)議交互錯誤標識FOTA_ERROR字符串,若存在,則該升級狀態(tài)數(shù)據(jù)為協(xié)議交互錯誤數(shù)據(jù),將該升級狀態(tài)數(shù)據(jù)存儲到升級狀態(tài)錯誤表中;當不存在FOTA_ERROR字符串時,則進一步判斷上報時間是否超出了預設時間。該預設時間為當前正在進行數(shù)據(jù)存儲的正常分表允許升級狀態(tài)數(shù)據(jù)存儲的時間。

進一步的,判斷升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間,根據(jù)判斷結(jié)果將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中,包括:當上報時間未超出預設時間時,將升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中;當上報時間超出預設時間時,將升級狀態(tài)數(shù)據(jù)存儲到異常表。

具體的,若該升級狀態(tài)數(shù)據(jù)的上報時間未超出預設時間,則將該升級狀態(tài)數(shù)據(jù)增加當前正常分表的分表名字段存儲到當前正在進行數(shù)據(jù)存儲的正常分表中;若超出了預設時間,則將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,該異常表用于存儲所有上報時間超出預設時間的升級狀態(tài)數(shù)據(jù)。

進一步的,將升級狀態(tài)數(shù)據(jù)存儲到異常表中之前,還包括:判斷異常表中是否存在與升級狀態(tài)數(shù)據(jù)相同會話身份標識的數(shù)據(jù),當不存在時,從升級狀態(tài)數(shù)據(jù)對應的會話身份標識中解析出搜包時間,將搜包時間和升級狀態(tài)數(shù)據(jù)對應存儲到異常表中;當存在時,將升級狀態(tài)數(shù)據(jù)相對于相同會話身份標識數(shù)據(jù)的增量存儲到異常表中對應搜包時間位置。

具體的,若該升級狀態(tài)數(shù)據(jù)的上報時間超出了預設時間,需要將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,則先判斷在異常表中是否存在與該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù),若存在,則將該升級狀態(tài)數(shù)據(jù)的增量存儲到該異常表中;若不存在,則將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,并且從sessionID中解析出該升級狀態(tài)數(shù)據(jù)對應的搜包時間,將該搜包時間同時存儲到該異常表中與該升級狀態(tài)數(shù)據(jù)對應的位置。

進一步的,sessionID,即會話身份標識信息依次包括:當前服務器IP字段,當前時間戳字段,5位隨機字符字段,1位隨機數(shù)字廠商字段,終端型號字段和搜包時間字段。

具體的,在終端與FOTA服務器32交互的整個過程中,唯一標識為sessionID,即在所有的升級狀態(tài):搜包,下載,升級,sessionID都為相同的,要使升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中,就需要升級狀態(tài)數(shù)據(jù)在上報時,無論上報時間是否超時都可找到其對應的正常分表,繼而進行正確的升級狀態(tài)的更新處理,保證原生的升級狀態(tài)數(shù)據(jù)的準確。在當前的分表存儲策略中,索引表存儲了升級狀態(tài)記錄在當前分表的開始和結(jié)束的時間點,因此,這2個時間相關的字段可以作為升級狀態(tài)的更新處理定位標記,當前的sessionID的生成算法為:base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字),即在當前的sessionID中缺少了對分表的定位的相應標識。本實施例提供的升級狀態(tài)數(shù)據(jù)升級裝置,優(yōu)化sessionID的生成算法,將該算法改進為:base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字-廠商-終端型號-搜包時間),該優(yōu)化后的sessionID依然可作為升級交互過程中的唯一標識。

步驟S102,將異常表中的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到其對應的正常分表中,并將正常分表標記為統(tǒng)計失效正常分表。

具體的,為使所有升級狀態(tài)數(shù)據(jù)都能存儲到其對應的正常分表中,需要將異常表中的升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中。

進一步的,將異常表中的升級狀態(tài)數(shù)據(jù)按照預設規(guī)則回寫到其對應的正常分表中包括:將異常表中升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而確定異常表中的升級狀態(tài)數(shù)據(jù)對應的正常分表;將升級狀態(tài)數(shù)據(jù)存儲到正常分表中。

具體的,為保證升級狀態(tài)數(shù)據(jù)存儲的準確性,需要將存儲到異常表中的升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中,其具體過程包括:MOM中間件的master節(jié)點啟動升級狀態(tài)隊列處理器的運行狀況監(jiān)聽器,當系統(tǒng)為空閑狀態(tài),并且在異常表中存在異常數(shù)據(jù)時,根據(jù)該異常表中存儲的升級狀態(tài)數(shù)據(jù)對應的搜包時間與預設時間進行匹配,從而來確定其對應的正常分表。確定異常表中存儲的升級狀態(tài)數(shù)據(jù)對應的分表,可以是先獲取異常表中所有搜包時間中的最小搜包時間與最大搜包時間,比如最小搜包時間為a,最大搜包 時間為b,則將時間范圍[a,b]作為回寫時間范圍,即進行后續(xù)回寫處理的數(shù)據(jù)范圍。然后從分表索引表中獲取開始和結(jié)束時間在回寫時間范圍內(nèi)的索引記錄列表。當系統(tǒng)為空閑時獲取索引記錄列表中的分表名以及開始和結(jié)束時間,從異常表中,獲取該搜包開始和結(jié)束時間范圍的升級狀態(tài)數(shù)據(jù)列表,判斷升級狀態(tài)數(shù)據(jù)列表中的升級狀態(tài)數(shù)據(jù)在該分表名對應的正常分表中是否存在相同的sessionID的數(shù)據(jù),當存在時則將該升級狀態(tài)數(shù)據(jù)增量更新到該正常分表中;當不存在時,將該升級狀態(tài)數(shù)據(jù)新增到該正常分表中;然后將分表索引表中該存儲了異常表中的升級狀態(tài)數(shù)據(jù)的正常分表的索引記錄標記為統(tǒng)計失效。

步驟S103,升級狀態(tài)數(shù)據(jù)統(tǒng)計裝置對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。

具體的,升級狀態(tài)數(shù)據(jù)統(tǒng)計裝置對標記為統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理,包括:清除標記為統(tǒng)計失效的正常分表對應的升級狀態(tài)數(shù)據(jù)統(tǒng)計記錄后,對正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。該升級狀態(tài)統(tǒng)計數(shù)據(jù)包括存儲升級狀態(tài)數(shù)據(jù)的正常分表的分表名對應的統(tǒng)計中間數(shù)據(jù)和該統(tǒng)計之間數(shù)據(jù)對應的統(tǒng)計處理中間表的已統(tǒng)計狀態(tài)。當清除掉上述升級狀態(tài)數(shù)據(jù)的統(tǒng)計記錄后,從分表索引表中獲取為未統(tǒng)計狀態(tài)的正常分表列表,進行數(shù)據(jù)統(tǒng)計處理。

本實施例提供的升級狀態(tài)數(shù)據(jù)統(tǒng)計系統(tǒng)方法,通過獲取升級狀態(tài)數(shù)據(jù),根據(jù)該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間將升級狀態(tài)數(shù)據(jù)存儲到正常分表或異常表中;然后將異常表中的升級狀態(tài)數(shù)據(jù)存儲到其對應的正常表中,并將正常分表在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效;當需要對升級狀態(tài)數(shù)據(jù)進行統(tǒng)計處理時,再對統(tǒng)計失效的正常分表進行升級狀態(tài)數(shù)據(jù)統(tǒng)計處理。保證升級交互數(shù)據(jù)可以存儲到其對應的正常分表中,從而提高了升級狀態(tài)數(shù)據(jù)存儲的完整性和準確性,同時也提升了升級狀態(tài)數(shù)據(jù)統(tǒng)計的準確性。

實施例三:

本實施例對升級狀態(tài)數(shù)據(jù)管理方法分步進行詳細描述,其具體包括:

第一步,調(diào)整FOTA協(xié)議服務器sessionID生成算法,并向升級會話配 置sessionID。

具體地,在FOTA客戶端與FOTA服務器交互的整個過程中,唯一標識為sessionID,即在所有的升級狀態(tài):搜包,下載,升級,sessionID都為相同的,解決準確性的問題之一,就是在升級狀態(tài)數(shù)據(jù)在上報時,無論是否超時都可找到所對應的分表,繼而進行正確的升級狀態(tài)的更新處理,保證原生的升級狀態(tài)數(shù)據(jù)的準確。在當前的分表存儲策略中,索引表存儲了升級狀態(tài)記錄在當前分表的開始和結(jié)束的時間點,因此,這2個時間相關的字段可以作為升級狀態(tài)的更新處理定位標記,當前的sessionID的生成算法為:base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字),在當前的sessionID中缺少了對分表的定位的相應標識。優(yōu)化sessionID的生成算法,將該算法改進為:base64base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字-廠商-終端型號-搜包時間)。經(jīng)過base64(當前服務器IP-當前時間戳-5位隨機字符-1位隨機數(shù)字)處理的部分已保證了唯一性,因此,優(yōu)化后的整體sessionID依然保證了唯一性,可作為唯一標識。因此,優(yōu)化后的整體sessionID依然保證了唯一性,仍然可作為唯一標識。而且通過該sessionID能準確定位到每條升級狀態(tài)數(shù)據(jù)對應的分表,不會使升級狀態(tài)數(shù)據(jù)丟失,保證了存儲升級狀態(tài)數(shù)據(jù)的準確性,使得升級狀態(tài)數(shù)據(jù)的統(tǒng)計更準確。

第二步,調(diào)整MOM中間件的數(shù)據(jù)持久化處理邏輯,對升級狀態(tài)數(shù)據(jù)進行存儲,處理流程請參見圖8,具體包括:

步驟S201,獲取升級狀態(tài)數(shù)據(jù);

具體的,MOM中間件從FOTA服務器獲取終端發(fā)送的升級狀態(tài)數(shù)據(jù),該升級狀態(tài)數(shù)據(jù)包括升級協(xié)議交互開始數(shù)據(jù)、升級協(xié)議交互完成數(shù)據(jù)和升級下載回調(diào)數(shù)據(jù),其中升級協(xié)議交互開始數(shù)據(jù)和升級協(xié)議交互完成數(shù)據(jù)在MOM中間件中進行了合并之后,進行了插入持久化處理。而升級下載回調(diào)數(shù)據(jù),由于在實際過程中,是等待下載完成后的上報數(shù)據(jù),因此,相對會有所延遲,并且升級狀態(tài)數(shù)據(jù)采用的是按閾值進行分表存儲的策略,如附圖3所示,當系統(tǒng)處于持續(xù)大并發(fā)的情況下,由于產(chǎn)生的升級狀態(tài)數(shù)據(jù)量較大,因此,分表很容易在短時間內(nèi)到達閾值,則MOM中間件產(chǎn)生新的分表,而終端進行升級包下載過程中,并未上報最后的下載回報數(shù)據(jù),當下載完成,上報數(shù)據(jù)后,由于無法定位到相應的前2個升級狀態(tài)數(shù)據(jù)所在的分表,造成 相應的升級狀態(tài)數(shù)據(jù)丟失,使得存儲數(shù)據(jù)準確性下降,造成升級數(shù)據(jù)的統(tǒng)計失真。所以在升級狀態(tài)數(shù)據(jù)的存儲過程中,需要制定策略將一次升級處理過程中的三次交互數(shù)據(jù)都存儲到其對應的分表中,以保證升級狀態(tài)數(shù)據(jù)存儲的完整性和準確性。

步驟S202,判斷升級狀態(tài)數(shù)據(jù)是否為第一個交互數(shù)據(jù),若為是,跳轉(zhuǎn)到步驟S203;若為否,跳轉(zhuǎn)到步驟S205;

具體的,當獲取到升級狀態(tài)數(shù)據(jù)后先判斷該升級狀態(tài)數(shù)據(jù)是否為第一個升級交互數(shù)據(jù),若該升級狀態(tài)數(shù)據(jù)不是第一個升級交互數(shù)據(jù),則判斷該升級狀態(tài)數(shù)據(jù)的上報時間是否超出預設時間。若該升級狀態(tài)數(shù)據(jù)為第一個升級交互數(shù)據(jù),則判斷在resultMsg字段中的信息前綴是否存在FOTA_ERROR字符串。

步驟S203,判斷是否存在FOTA_ERROR標識字符串,若存在,跳轉(zhuǎn)到步驟S204;若不存在,跳轉(zhuǎn)到步驟S205;

具體的,判斷在resultMsg字段中的信息前綴是否存在FOTA_ERROR字符串是為確定該升級狀態(tài)數(shù)據(jù)是否為協(xié)議交互錯誤數(shù)據(jù),若存在FOTA_ERROR字符串,則說明該升級狀態(tài)數(shù)據(jù)為協(xié)議交互錯誤數(shù)據(jù)時,將該升級狀態(tài)數(shù)據(jù)存儲到升級狀態(tài)錯誤表中;當不存在FOTA_ERROR字符串時,則進一步判斷上報時間是否超出了預設時間。

步驟S204,路由存儲到升級狀態(tài)錯誤表;

具體的,當升級狀態(tài)數(shù)據(jù)為協(xié)議交互錯誤數(shù)據(jù)時,將該升級狀態(tài)數(shù)據(jù)存儲到升級狀態(tài)錯誤表中。

步驟S205,判斷上報時間是否超過預設時間,若否,跳轉(zhuǎn)到步驟S206;若否,跳轉(zhuǎn)到步驟S208;

具體的,預設時間為當前正在進行數(shù)據(jù)存儲的正常分表允許升級狀態(tài)數(shù)據(jù)存儲的時間。若該升級狀態(tài)數(shù)據(jù)的上報時間未超出預設時間,則將該升級狀態(tài)數(shù)據(jù)增加當前正常分表的分表名字段存儲到當前正在進行數(shù)據(jù)存儲的正常分表中;若超出了預設時間,則將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,該異常表用于存儲所有上報時間超出預設時間的升級狀態(tài)數(shù)據(jù)。

步驟S206,從回溯隊列獲取相應的分表名,跳轉(zhuǎn)到步驟S207;

具體的,將升級狀態(tài)數(shù)據(jù)存儲到正常分表中時,先從回溯隊列中獲取其 對應的分表名。

步驟S207,增加當前分表名字段,將升級狀態(tài)數(shù)據(jù)一起寫入相應的支持分表。

步驟S208,將寫入操作,路由到異常表;然后跳轉(zhuǎn)到步驟S209;

具體的,當升級狀態(tài)數(shù)據(jù)的上報時間超過預設時間時,將存儲處理路由到異常表。

步驟S209,解析該sessionID,將搜包時間解析出來,跳轉(zhuǎn)到步驟S210;

具體的,若該升級狀態(tài)數(shù)據(jù)的上報時間超出了預設時間,需要將該升級狀態(tài)數(shù)據(jù)存儲到異常表中,則將寫入操作路由到異常表中,并解析該升級狀態(tài)數(shù)據(jù)對應的sessionID,得到其搜包時間。

步驟S210,判斷在異常中是否存在同sessionID的升級狀態(tài)數(shù)據(jù),若存在,跳轉(zhuǎn)到步驟S211;若不存在,跳轉(zhuǎn)到步驟S212;

具體的,在將升級狀態(tài)數(shù)據(jù)存儲到異常表中之前,先判斷在異常表中是否存在與該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù),當存在時,只需要將升級狀態(tài)數(shù)據(jù)增量存儲到異常表中;當不存在時,需要將該升級狀態(tài)數(shù)據(jù)和其對應的搜包時間設置到異常表中。

步驟S211,將該升級狀態(tài)數(shù)據(jù)增量更新持久化到異常表中;

步驟S212,將升級狀態(tài)數(shù)據(jù)以及搜包時間新增持久化到異常表中。

具體的,將升級狀態(tài)數(shù)據(jù)和與其對應的搜包時間按照對應關系存儲到異常表中作為該異常表中的一條記錄。

通過上述方法,將正常的升級狀態(tài)數(shù)據(jù)和延遲異常的升級狀態(tài)數(shù)據(jù)進行分離存儲,保障了系統(tǒng)的升級狀態(tài)數(shù)據(jù)存儲的完整性。

第三步,對延遲異常的升級狀態(tài)數(shù)據(jù)進行回寫處理,即將異常表中的升級狀態(tài)數(shù)據(jù)回寫到其對應的正常分表中,處理過程具體包括:

步驟S301,MOM中間件的master節(jié)點啟動升級狀態(tài)隊列處理器的運行狀況監(jiān)聽器;

具體的,MOM中間件的master節(jié)點啟動升級狀態(tài)隊列處理器的運行狀況監(jiān)聽器,檢測系統(tǒng)是否空閑,并進行后續(xù)的數(shù)據(jù)回寫處理。

步驟S302,判斷系統(tǒng)是否為空閑狀態(tài),若是,跳轉(zhuǎn)到步驟S303;若否,返回步驟S301;

具體的,判斷系統(tǒng)事故為空閑狀態(tài),即判斷終端的升級處理是否已經(jīng)結(jié)束;當結(jié)束的時候再去解析升級狀態(tài)數(shù)據(jù)的回寫處理。

步驟S303,判斷異常表是否存在數(shù)據(jù),若是,跳轉(zhuǎn)到步驟S304;若否,返回步驟S301;

具體的,判斷升級過程中是否有升級狀態(tài)數(shù)據(jù)存儲到異常表中,若有,則需要進行回寫處理;若沒有,則不需要進行回寫處理。

步驟S304,獲取異常數(shù)據(jù)的最小搜包時間與最大搜包時間,劃定本次回寫的數(shù)據(jù)范圍,跳轉(zhuǎn)到步驟S305;

具體的,獲取升級狀態(tài)數(shù)據(jù)的最小搜包時間與最大搜包時間,劃定本次回寫的數(shù)據(jù)范圍,若最小搜包時間為a,最大搜包時間為b,則回寫范圍是[a,b]。

步驟S305,獲取開始和結(jié)束時間在回寫時間范圍的索引記錄列表,遍歷處理索引記錄列表;

具體的,在分表索引表中查找開始時間和結(jié)束時間在該回寫范圍內(nèi)的分表索引記錄,得到分表索引記錄列表,再進行后續(xù)回寫處理。

步驟S306,判斷分表索引記錄列表中是否還有未遍歷數(shù)據(jù),若是,跳轉(zhuǎn)到步驟S307;若否,返回步驟S301;

具體的,判斷分表索引記錄列表中是否還有正常分表對應的記錄未進行數(shù)據(jù)的回寫處理。

步驟S307,判斷系統(tǒng)是否為空閑狀態(tài),若是,跳轉(zhuǎn)到步驟S308;若否,返回步驟S301;

具體的,確定系統(tǒng)為空閑狀態(tài)的時候,進行后續(xù)回寫處理處理。

步驟S308,獲取索引記錄的分表名以及開始和結(jié)束時間,跳轉(zhuǎn)到步驟S309;

具體的,選定索引記錄列表中的一條索引記錄,然后獲取該索引記錄中的分表名,及其中的開始時間和結(jié)束時間。

步驟S309,獲取該開始和時間范圍的升級狀態(tài)數(shù)據(jù)列表,遍歷該列表;

具體的,對應上述一條索引記錄中的開始時間和結(jié)束時間,在異常表中獲取搜包時間在該開始時間和結(jié)束時間內(nèi)的升級狀態(tài)數(shù)據(jù)。

步驟S310,判斷升級狀態(tài)數(shù)據(jù)列表中是否還有未遍歷數(shù)據(jù),若是,跳 轉(zhuǎn)到步驟S311;若否,跳轉(zhuǎn)到步驟S314;

具體的,確定異常表中與該索引記錄對應的升級狀態(tài)數(shù)據(jù)都被查找到了,以保證異常表中的搜有升級狀態(tài)數(shù)據(jù)都能存儲到對應正常分表中。

步驟S311,判斷正常分表中是否存在相同的sessionID的數(shù)據(jù),若是,跳轉(zhuǎn)到步驟S312;若否,跳轉(zhuǎn)到步驟S313;

具體的,當將異常表中的數(shù)據(jù)存儲到其對應的正常分表時,先判斷正常分表中是否有該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù)。

步驟S312,將該升級狀態(tài)數(shù)據(jù)增量更新到正常分表中,返回步驟S310;

具體的,當正常分表中存在與該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù)時,將該升級狀態(tài)數(shù)據(jù)的增量存儲到其對應的正常分表中。

步驟S313,將該升級狀態(tài)數(shù)據(jù)新增到該分表中,返回步驟S310;

具體的,當正常分表中不存在與該升級狀態(tài)數(shù)據(jù)相同sessionID的數(shù)據(jù)時,將該升級狀態(tài)數(shù)據(jù)存儲到其對應的正常分表中。

步驟S314,將該分表索引記錄標記為統(tǒng)計失效。

具體的,該正常分表進行回寫處理后,其存儲的數(shù)據(jù)改變了,需要將存儲了異常表中的升級狀態(tài)數(shù)據(jù)在分表索引表中的統(tǒng)計狀態(tài)標記為統(tǒng)計失效,重新進行數(shù)據(jù)統(tǒng)計處理。

步驟S4,對完成回寫的升級狀態(tài)數(shù)據(jù)進行重算處理,處理過程具體包括:

步驟S401,啟動后臺運營管理系統(tǒng),定時任務啟動,跳轉(zhuǎn)到步驟S402;

具體的,當完成對異常表中的升級狀態(tài)數(shù)據(jù)的回寫處理后,需要對進行了回寫處理的正常分表重新進行數(shù)據(jù)統(tǒng)計數(shù)據(jù)。

步驟S402,獲取原始數(shù)據(jù)表的對應分表索引表中統(tǒng)計結(jié)果失效的分表名里列表,跳轉(zhuǎn)到步驟S403;

具體的,從分表索引表中獲取統(tǒng)計狀態(tài)為統(tǒng)計結(jié)果失效的分表名列表,該分表名對應的分表即為需要進行重新進行數(shù)據(jù)統(tǒng)計處理的正常分表。

步驟S403,依次循環(huán)讀取統(tǒng)計結(jié)果失效的分表名列表;

具體的,依次循環(huán)讀取統(tǒng)計結(jié)果失效的分表名列表對該分表名列表中的記錄一一進行重算處理。

步驟S404,判斷分表名列表中是否還有未遍歷數(shù)據(jù),若是,跳轉(zhuǎn)到步 驟S405;若否,跳轉(zhuǎn)到步驟S409;

具體的,確保分表名列表中的分表名對應的正常表都重新進行了數(shù)據(jù)統(tǒng)計處理。

步驟S405,獲取業(yè)務中間報表列表,依次遍歷統(tǒng)計處理中間報表列表;

具體的,獲取分表名對應的正常分表的業(yè)務中間統(tǒng)計數(shù)據(jù)。

步驟S406,判斷業(yè)務中間報表列表是否還有未遍歷數(shù)據(jù),若是,跳轉(zhuǎn)到步驟S407;若否,返回步驟S404;

具體的,確保該業(yè)務中間報表列表中的數(shù)據(jù)都已被清除。

步驟S407,清除該業(yè)務中間報表的屬于該分表名的統(tǒng)計中間數(shù)據(jù),跳轉(zhuǎn)到步驟S408;

具體的,當正常分表中傳出的升級狀態(tài)數(shù)據(jù)有變化時,說明業(yè)務中間報表中其對應的統(tǒng)計中間數(shù)據(jù)已經(jīng)不正確了,此時需要清除該業(yè)務中間報表的屬于該分表名的統(tǒng)計中間數(shù)據(jù)。

步驟S408,清除該分表索引記錄的該統(tǒng)計處理中間表已統(tǒng)計狀態(tài);

具體的,清除掉統(tǒng)計中間數(shù)據(jù)后,將分別索引表中該正常分表對應的統(tǒng)計處理中間表的統(tǒng)計狀態(tài)。

步驟S409,按各個業(yè)務中間表,獲取分表索引表中未統(tǒng)計狀態(tài)的分表列表,跳轉(zhuǎn)到步驟S410;

具體的,當墻出完上述與該正常分表有關的統(tǒng)計信息后,獲取未統(tǒng)計狀態(tài)的正常分表,開始進行數(shù)據(jù)統(tǒng)計處理。

步驟S410,進行定時數(shù)據(jù)統(tǒng)計處理。

通過上述處理,實現(xiàn)了對終端升級狀態(tài)數(shù)據(jù)統(tǒng)計處理的修正完善,極大提升了用戶移動終端的升級狀態(tài)數(shù)據(jù)收集的準確性。

需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。

上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。

通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。

以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運

用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平阳县| 永川市| 金溪县| 和平县| 汝阳县| 鄢陵县| 许昌县| 兴和县| 东山县| 永新县| 江都市| 宁城县| 普兰店市| 遵义市| 麻江县| 克东县| 精河县| 南通市| 汽车| 吴川市| 博罗县| 泸西县| 黔南| 阿拉善右旗| 普兰店市| 涟源市| 合川市| 丹阳市| 贵阳市| 江阴市| 鄂托克前旗| 获嘉县| 岢岚县| 平昌县| 新郑市| 延川县| 江达县| 安龙县| 钦州市| 达拉特旗| 镇江市|