本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種數(shù)據(jù)處理方法和裝置。
背景技術(shù):
在數(shù)據(jù)采集系統(tǒng)中,一般在程序初始化時(shí),數(shù)據(jù)采集系統(tǒng)從配置站點(diǎn)獲取必要配置參數(shù),例如,數(shù)據(jù)接收地址、采樣率等,如果在數(shù)據(jù)待發(fā)送時(shí)沒(méi)有讀取到必要的配置參數(shù),則會(huì)導(dǎo)致數(shù)據(jù)丟失,例如,獲取配置參數(shù)時(shí)網(wǎng)絡(luò)連接中斷導(dǎo)致配置獲取失敗,或網(wǎng)絡(luò)速度較慢,在數(shù)據(jù)待發(fā)送時(shí)數(shù)據(jù)采集系統(tǒng)還未獲取到配置參數(shù),這些情況都會(huì)導(dǎo)致數(shù)據(jù)丟失。
針對(duì)相關(guān)技術(shù)中因獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲或失敗導(dǎo)致發(fā)送的數(shù)據(jù)丟失的問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的主要目的在于提供一種數(shù)據(jù)處理方法和裝置,以解決相關(guān)技術(shù)中因獲取配置參數(shù)延遲導(dǎo)致發(fā)送的數(shù)據(jù)丟失的問(wèn)題。
為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種數(shù)據(jù)處理方法。該方法包括:將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù);檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù);當(dāng)檢測(cè)出已獲取到配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
進(jìn)一步地,當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)包括:從配置站點(diǎn)獲取配置參數(shù),其中,配置站點(diǎn)用于設(shè)置數(shù)據(jù)采集系統(tǒng)的配置參數(shù);以及判斷獲取配置參數(shù)是否成功,其中,當(dāng)從配置站點(diǎn)獲取配置參數(shù)成功時(shí),則根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),當(dāng)從配置站點(diǎn)獲取配置參數(shù)失敗時(shí),返回執(zhí)行將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
進(jìn)一步地,從配置站點(diǎn)獲取配置參數(shù)包括:獲取數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí);根據(jù)數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí)從配置站點(diǎn)中讀取數(shù)據(jù)采集系統(tǒng)的配置文件;以及從數(shù)據(jù)采集系統(tǒng)的配置文件中獲取配置參數(shù)。
進(jìn)一步地,在已獲取到配置參數(shù)之后,該方法還包括:檢測(cè)配置站點(diǎn)中數(shù)據(jù)采集 系統(tǒng)的配置參數(shù)是否進(jìn)行了更新;以及在檢測(cè)出配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行了更新時(shí),重新從配置站點(diǎn)中獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
進(jìn)一步地,在根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)之前,該方法還包括:檢測(cè)網(wǎng)絡(luò)環(huán)境是否適于發(fā)送數(shù)據(jù);以及在檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
進(jìn)一步地,配置參數(shù)包括采樣率和數(shù)據(jù)發(fā)送地址,根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)包括:根據(jù)采樣率判斷是否需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),其中,在判斷出需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)發(fā)送地址發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
為了實(shí)現(xiàn)上述目的,根據(jù)本申請(qǐng)的另一方面,提供了一種數(shù)據(jù)處理裝置。該裝置包括:存儲(chǔ)單元,用于將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù);第一檢測(cè)單元,用于檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù);第一發(fā)送單元,用于在第一檢測(cè)單元檢測(cè)出已獲取到配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及第二發(fā)送單元,用于在第一檢測(cè)單元檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
進(jìn)一步地,第二發(fā)送單元包括:獲取模塊,用于從配置站點(diǎn)獲取配置參數(shù),其中,配置站點(diǎn)用于設(shè)置數(shù)據(jù)采集系統(tǒng)的配置參數(shù);以及第一判斷模塊,用于判斷獲取配置參數(shù)是否成功,其中,當(dāng)從配置站點(diǎn)獲取配置參數(shù)成功時(shí),則根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),當(dāng)從配置站點(diǎn)獲取配置參數(shù)失敗時(shí),返回存儲(chǔ)單元執(zhí)行將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
進(jìn)一步地,該裝置還包括:第二檢測(cè)單元,用于檢測(cè)配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)是否進(jìn)行了更新;以及獲取單元,用于在檢測(cè)出配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行了更新時(shí),重新從配置站點(diǎn)中獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
進(jìn)一步地,該裝置還包括:第三檢測(cè)單元,用于檢測(cè)網(wǎng)絡(luò)環(huán)境是否適于發(fā)送數(shù)據(jù),其中,第一發(fā)送單元用于在第一檢測(cè)單元檢測(cè)出已獲取到配置參數(shù),且在第三檢測(cè)單元檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),第二發(fā)送單元用于在第一檢測(cè)單元檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),且在第三檢測(cè)單元檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
本申請(qǐng)通過(guò)將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù);檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù);當(dāng)檢測(cè)出已獲取到配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。通過(guò)對(duì) 待發(fā)送數(shù)據(jù)進(jìn)行緩存以及在需要發(fā)送數(shù)據(jù)時(shí)獲取配置參數(shù),從而可以保證在網(wǎng)絡(luò)中斷導(dǎo)致暫時(shí)獲取配置參數(shù)失敗或是獲取配置參數(shù)延遲時(shí)數(shù)據(jù)都不會(huì)丟失,解決了相關(guān)技術(shù)中因獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲或是失敗時(shí)導(dǎo)致發(fā)送的數(shù)據(jù)丟失的問(wèn)題,進(jìn)而達(dá)到了在獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲或是失敗時(shí)防止數(shù)據(jù)丟失的效果。
附圖說(shuō)明
構(gòu)成本申請(qǐng)的一部分的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是根據(jù)本申請(qǐng)第一實(shí)施例的數(shù)據(jù)處理方法的流程圖;
圖2是根據(jù)本申請(qǐng)第二實(shí)施例的數(shù)據(jù)處理方法的流程圖;以及
圖3是根據(jù)本申請(qǐng)實(shí)施例的數(shù)據(jù)處理裝置示意圖。
具體實(shí)施方式
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
需要說(shuō)明的是,本申請(qǐng)的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請(qǐng)的實(shí)施例。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
為了便于描述,以下對(duì)本申請(qǐng)實(shí)施例涉及的幾個(gè)術(shù)語(yǔ)進(jìn)行說(shuō)明:
數(shù)據(jù)采集系統(tǒng),是一種將數(shù)據(jù)采集軟件開發(fā)工具包(Software Development Kit,簡(jiǎn)稱SDK)嵌入網(wǎng)頁(yè)頁(yè)面或應(yīng)用程序(俗稱App)等數(shù)據(jù)源中,獲取指定數(shù)據(jù)并發(fā)送至指定服務(wù)器的系統(tǒng)。
Lazy模式,是指在需要發(fā)送數(shù)據(jù)時(shí)獲取配置參數(shù),而不是在程序初始化時(shí)獲取配置參數(shù)。
根據(jù)本申請(qǐng)實(shí)施例,提供了一種數(shù)據(jù)處理方法,圖1是根據(jù)本申請(qǐng)第一實(shí)施例的數(shù)據(jù)處理方法的流程圖。如圖1所示,該方法包括如下的步驟S102至步驟S108:
步驟S102:將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù)。
本申請(qǐng)實(shí)施例的待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù),例如,數(shù)據(jù)采集系統(tǒng)采集的終端數(shù)據(jù),在用戶通過(guò)終端訪問(wèn)應(yīng)用程序或是網(wǎng)頁(yè)時(shí),數(shù)據(jù)采集系統(tǒng)則對(duì)該終端數(shù)據(jù)進(jìn)行采集,例如,采集該用戶終端的訪問(wèn)時(shí)間、訪問(wèn)內(nèi)容、終端的類型等數(shù)據(jù)。本申請(qǐng)實(shí)施例在獲取到待發(fā)送數(shù)據(jù)后,先將該待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,防止在數(shù)據(jù)采集系統(tǒng)尚未獲取到配置參數(shù)時(shí)出現(xiàn)數(shù)據(jù)丟失。
步驟S104:檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
數(shù)據(jù)采集系統(tǒng)的配置參數(shù)可以包括數(shù)據(jù)接收地址、采樣率等信息。具體地,可以通過(guò)檢測(cè)數(shù)據(jù)采集系統(tǒng)的本地存儲(chǔ)區(qū)是否存儲(chǔ)有配置參數(shù)來(lái)檢測(cè)是否已經(jīng)獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù),其中,在數(shù)據(jù)采集系統(tǒng)的本地存儲(chǔ)區(qū)已經(jīng)存儲(chǔ)有數(shù)據(jù)采集系統(tǒng)的配置參數(shù)時(shí),則說(shuō)明已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù),否則,則說(shuō)明未獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
步驟S106:當(dāng)檢測(cè)出已獲取到時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),例如,按照隊(duì)列順序?qū)?shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送至數(shù)據(jù)接收地址。
步驟S108:當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
本申請(qǐng)實(shí)施例在檢測(cè)出數(shù)據(jù)采集系統(tǒng)的本地存儲(chǔ)區(qū)未存儲(chǔ)有配置參數(shù)時(shí),獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
可選地,當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)包括:從配置站點(diǎn)獲取配置參數(shù),其中,配置站點(diǎn)用于設(shè)置數(shù)據(jù)采集系統(tǒng)的配置參數(shù);以及判斷獲取配置參數(shù)是否成功,其中,當(dāng)從配置站點(diǎn)獲取配置參數(shù)成功時(shí),則根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),當(dāng)從配置站點(diǎn)獲取配置參數(shù)失敗時(shí),返回執(zhí)行將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
具體地,可以預(yù)先在特定服務(wù)器上創(chuàng)建數(shù)據(jù)采集系統(tǒng)的配置參數(shù)的配置站點(diǎn),在該配置站點(diǎn)的目錄下創(chuàng)建配置文件samplerate.config,其中,配置文件可以采用可擴(kuò)展標(biāo)記語(yǔ)言(extensible markup language,簡(jiǎn)稱為xml)格式。
可選地,從配置站點(diǎn)獲取配置參數(shù)包括:獲取數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí);根據(jù)數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí)從配置站點(diǎn)中讀取數(shù)據(jù)采集系統(tǒng)的配置文件;以及從數(shù)據(jù)采集系統(tǒng)的配置文件中獲取配置參數(shù)。
本申請(qǐng)實(shí)施例可以通過(guò)配置站點(diǎn)為多個(gè)數(shù)據(jù)采集系統(tǒng)配置參數(shù),具體地,可以為多個(gè)數(shù)據(jù)采集系統(tǒng)分配不同的唯一標(biāo)識(shí),從而可以根據(jù)每個(gè)數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí)即可從配置站點(diǎn)中查找到該數(shù)據(jù)采集系統(tǒng)的配置文件。
具體地,本申請(qǐng)實(shí)施例在檢測(cè)出未獲取到配置參數(shù)時(shí),首先獲取目標(biāo)數(shù)據(jù)采集系統(tǒng)(即當(dāng)前需要獲取配置參數(shù)的數(shù)據(jù)采集系統(tǒng))的唯一標(biāo)識(shí),在獲取到目標(biāo)數(shù)據(jù)采集系統(tǒng)的標(biāo)識(shí)后,根據(jù)其唯一標(biāo)識(shí)從配置站點(diǎn)中讀取該目標(biāo)數(shù)據(jù)采集系統(tǒng)的配置文件,例如,samplerate.config,如果成功讀取到其配置文件,則從該配置文件中獲取目標(biāo)數(shù)據(jù)采集系統(tǒng)的配置參數(shù),并根據(jù)該配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中緩存的待發(fā)送數(shù)據(jù);如果在從配置站點(diǎn)讀取其配置文件(即獲取配置參數(shù)失敗)失敗,則返回執(zhí)行上述步驟S102,即繼續(xù)將目標(biāo)數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
需要說(shuō)明的是,如果在配置參數(shù)下載和更新過(guò)程中又有待發(fā)送數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列,可以在獲取到配置參數(shù)后一起被發(fā)送。在數(shù)據(jù)隊(duì)列中數(shù)據(jù)都發(fā)送成功后,對(duì)數(shù)據(jù)隊(duì)列進(jìn)行清理。
本申請(qǐng)實(shí)施例通過(guò)將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù);檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù);當(dāng)檢測(cè)出已獲取到配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及當(dāng)檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。通過(guò)對(duì)待發(fā)送數(shù)據(jù)進(jìn)行緩存以及在需要發(fā)送數(shù)據(jù)時(shí)獲取配置參數(shù),相比于現(xiàn)有技術(shù)中僅在程序初始化時(shí)獲取配置參數(shù),可以保證在網(wǎng)絡(luò)中斷導(dǎo)致暫時(shí)獲取配置參數(shù)延失敗或是獲取配置參數(shù)延遲時(shí)數(shù)據(jù)都不會(huì)丟失,解決了相關(guān)技術(shù)中因獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲導(dǎo)致發(fā)送的數(shù)據(jù)丟失的問(wèn)題,進(jìn)而達(dá)到了在網(wǎng)絡(luò)中斷或是獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲時(shí)防止數(shù)據(jù)丟失的效果。
優(yōu)選地,在已獲取到配置參數(shù)之后,該方法還包括:檢測(cè)配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)是否進(jìn)行了更新;以及在檢測(cè)出配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行了更新時(shí),重新從配置站點(diǎn)中獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
本申請(qǐng)實(shí)施例可以隨時(shí)通過(guò)配置站點(diǎn)對(duì)數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行更新。具體 地,在配置站點(diǎn)中目標(biāo)數(shù)據(jù)采集系統(tǒng)(即當(dāng)前需要進(jìn)行數(shù)據(jù)發(fā)送的數(shù)據(jù)采集系統(tǒng))的配置參數(shù)進(jìn)行了更新時(shí),重新從配置站點(diǎn)中獲取該目標(biāo)數(shù)據(jù)采集系統(tǒng)的配置參數(shù),并根據(jù)新的配置參數(shù)進(jìn)行數(shù)據(jù)處理,例如,按照配置參數(shù)中新的接收地址發(fā)送數(shù)據(jù)。
可選地,檢測(cè)配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)是否進(jìn)行了更新可以是對(duì)更新?tīng)顟B(tài)的值進(jìn)行檢測(cè),其中,更新?tīng)顟B(tài)可以通過(guò)不同的標(biāo)識(shí)符進(jìn)行標(biāo)識(shí),例如,1和0,其中,1表示進(jìn)行了更新,0表示未進(jìn)行更新,在配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行了更新時(shí),將更新?tīng)顟B(tài)的值置為1,在配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)未進(jìn)行更新時(shí),將更新?tīng)顟B(tài)的值置為0。
優(yōu)選地,為了進(jìn)一步避免數(shù)據(jù)在發(fā)送過(guò)程中丟失,在根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)之前,該方法還包括:檢測(cè)網(wǎng)絡(luò)環(huán)境是否適于發(fā)送數(shù)據(jù);以及在檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
本申請(qǐng)實(shí)施例的網(wǎng)絡(luò)環(huán)境可以包括聯(lián)網(wǎng)狀態(tài)、所連接網(wǎng)絡(luò)的類型和網(wǎng)絡(luò)速度等。例如,當(dāng)檢測(cè)到網(wǎng)絡(luò)環(huán)境為WIFI網(wǎng)絡(luò)環(huán)境且網(wǎng)絡(luò)速度大于一定閾值時(shí),則確定網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù),否則,則確定網(wǎng)絡(luò)環(huán)境不適于發(fā)送數(shù)據(jù)。
優(yōu)選地,配置參數(shù)包括采樣率和數(shù)據(jù)發(fā)送地址,在根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)之前,該方法還包括:根據(jù)采樣率判斷是否需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),其中,在判斷出需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)發(fā)送地址發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
在數(shù)據(jù)采集系統(tǒng)中,對(duì)于數(shù)據(jù)源范圍特別大無(wú)法采集全量數(shù)據(jù)或者數(shù)據(jù)處理能力達(dá)不到處理全量數(shù)據(jù)的要求時(shí)會(huì)對(duì)數(shù)據(jù)源進(jìn)行采樣。本申請(qǐng)實(shí)施例根據(jù)采樣率判斷是否需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),其中,在判斷出需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)時(shí),則根據(jù)數(shù)據(jù)發(fā)送地址發(fā)送數(shù)據(jù)隊(duì)列中的數(shù),在判斷出不需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)時(shí),則直接清除數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
例如,用戶通過(guò)終端訪問(wèn)某個(gè)視頻網(wǎng)頁(yè)時(shí),內(nèi)嵌在該視頻網(wǎng)頁(yè)的數(shù)據(jù)采集系統(tǒng)開始采集對(duì)應(yīng)的終端數(shù)據(jù)并緩存至數(shù)據(jù)隊(duì)列中,在獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù)之后,根據(jù)采樣率判斷是否需要采集該用戶的終端數(shù)據(jù),在判斷出不需要采集該用戶的終端數(shù)據(jù)時(shí),從數(shù)據(jù)隊(duì)列中直接清除該終端數(shù)據(jù),在判斷出需要采集該用戶的終端數(shù)據(jù)時(shí),則根據(jù)發(fā)送地址發(fā)送數(shù)據(jù)隊(duì)列中的終端數(shù)據(jù)。
具體地,根據(jù)采樣率判斷是否需要采集該用戶的終端數(shù)據(jù)包括:判斷用戶的終端是否處于采樣范圍內(nèi),其中,如果該終端處于采樣范圍內(nèi),則需要采集該終端數(shù)據(jù),否則,則不需要采集該終端數(shù)據(jù),其中,采樣率和采樣范圍一一對(duì)應(yīng),例如,采樣率為0.5,其對(duì)應(yīng)的采樣范圍為(0,500),采樣率為0.3,其對(duì)應(yīng)的采樣范圍為(0,300)。
圖2是根據(jù)本申請(qǐng)第二實(shí)施例的數(shù)據(jù)處理方法的流程圖,如圖2所示,該方法包括如下的步驟S202至步驟S216:
步驟S202:創(chuàng)建數(shù)據(jù)隊(duì)列。
終端程序啟動(dòng)時(shí),SDK(即數(shù)據(jù)采集系統(tǒng))創(chuàng)建一個(gè)數(shù)據(jù)隊(duì)列,用于存儲(chǔ)待發(fā)送的數(shù)據(jù),其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù),例如,數(shù)據(jù)采集系統(tǒng)采集的終端數(shù)據(jù),在用戶通過(guò)終端訪問(wèn)應(yīng)用程序或是網(wǎng)頁(yè)時(shí),數(shù)據(jù)采集系統(tǒng)則對(duì)該終端數(shù)據(jù)進(jìn)行采集,例如,采集該用戶的訪問(wèn)時(shí)間、訪問(wèn)內(nèi)容、終端的類型等數(shù)據(jù)。
步驟S204:等待待發(fā)送數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列。
在創(chuàng)建數(shù)據(jù)隊(duì)列之后,將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
步驟S206:待發(fā)送數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列。
步驟S208:判斷配置參數(shù)是否已更新。
配置參數(shù)可以包括數(shù)據(jù)接收地址、采樣率等信息。本申請(qǐng)實(shí)施例判斷配置參數(shù)是否已更新即判斷數(shù)據(jù)采集系統(tǒng)的本地存儲(chǔ)區(qū)是否存儲(chǔ)有其配置參數(shù)。具體地,在每次有待發(fā)送數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列后,判斷所需配置參數(shù)是否已經(jīng)更新,如果所需配置參數(shù)已經(jīng)更新則執(zhí)行步驟S216,按照隊(duì)列順序依次發(fā)送隊(duì)列中的數(shù)據(jù);如果所需配置參數(shù)沒(méi)有更新,則執(zhí)行步驟S210,嘗試從配置站點(diǎn)中獲取配置參數(shù),例如,從配置站點(diǎn)中下載最新的配置參數(shù)。
步驟S210:從配置站點(diǎn)獲取配置參數(shù)。
具體地,可以預(yù)先在特定服務(wù)器上創(chuàng)建數(shù)據(jù)采集系統(tǒng)的配置參數(shù)的配置站點(diǎn),在該配置站點(diǎn)的目錄下創(chuàng)建配置文件samplerate.config,其中,配置文件可以采用可擴(kuò)展標(biāo)記語(yǔ)言(extensible markup language,簡(jiǎn)稱為xml)格式。
本申請(qǐng)實(shí)施例在判斷出配置參數(shù)沒(méi)有更新時(shí),嘗試從配置站點(diǎn)中下載最新配置參數(shù)。
步驟S212:判斷獲取配置參數(shù)是否成功。
如果從配置站點(diǎn)獲取配置參數(shù)成功,則執(zhí)行步驟S214;如果從配置站點(diǎn)獲取配置參數(shù)失敗,則返回執(zhí)行步驟S204,等待下一次數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列后重新獲取配置參數(shù)。
可選地,如果在配置參數(shù)下載和更新過(guò)程中又有數(shù)據(jù)進(jìn)入數(shù)據(jù)隊(duì)列,就可以在此過(guò)程中一起被發(fā)送。
步驟S214:更新配置參數(shù)。
獲取配置參數(shù)成功以后更新配置,例如,將獲取到的配置參數(shù)存儲(chǔ)至本地存儲(chǔ)區(qū)中。
步驟S216:依次發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
配置更新完畢后,按照隊(duì)列順序依次發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
需要說(shuō)明的是,在數(shù)據(jù)隊(duì)列中的數(shù)據(jù)都成功發(fā)送后,清除數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
本申請(qǐng)實(shí)施例通過(guò)Lazy模式的獲取配置時(shí)機(jī),以及數(shù)據(jù)隊(duì)列存儲(chǔ)數(shù)據(jù)的方法,解決了網(wǎng)絡(luò)暫時(shí)中斷或存在延遲的情況下數(shù)據(jù)會(huì)丟失的問(wèn)題,保證數(shù)據(jù)不會(huì)因配置獲取暫時(shí)失敗或延遲導(dǎo)致數(shù)據(jù)丟失。
需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
根據(jù)本申請(qǐng)實(shí)施例的另一方面,提供了一種數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置可以用于執(zhí)行本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法,本申請(qǐng)實(shí)施例的數(shù)據(jù)處理方法也可以通過(guò)本申請(qǐng)實(shí)施例的數(shù)據(jù)處理裝置來(lái)執(zhí)行。
圖3是根據(jù)本申請(qǐng)實(shí)施例的數(shù)據(jù)處理裝置的示意圖,如圖3所示,該裝置包括:存儲(chǔ)單元10,第一檢測(cè)單元20,第一發(fā)送單元30和第二發(fā)送單元40。
存儲(chǔ)單元10,用于將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中,其中,待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù)。
本申請(qǐng)實(shí)施例的待發(fā)送數(shù)據(jù)為數(shù)據(jù)采集系統(tǒng)采集的數(shù)據(jù),例如,數(shù)據(jù)采集系統(tǒng)采集的終端數(shù)據(jù),在用戶通過(guò)終端訪問(wèn)應(yīng)用程序或是網(wǎng)頁(yè)時(shí),數(shù)據(jù)采集系統(tǒng)則對(duì)該終端數(shù)據(jù)進(jìn)行采集,例如,采集該用戶終端的訪問(wèn)時(shí)間、訪問(wèn)內(nèi)容、終端的類型等數(shù)據(jù)。
第一檢測(cè)單元20,用于檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
數(shù)據(jù)采集系統(tǒng)的配置參數(shù)可以包括數(shù)據(jù)接收地址、采樣率等信息。
第一發(fā)送單元30,用于在檢測(cè)出已獲取到配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
第二發(fā)送單元40,用于在檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
本申請(qǐng)實(shí)施例通過(guò)存儲(chǔ)單元10將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中;第一檢測(cè)單元20檢測(cè)是否已獲取到數(shù)據(jù)采集系統(tǒng)的配置參數(shù);第一發(fā)送單元30在檢測(cè)出已獲取到 配置參數(shù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及第二發(fā)送單元40在檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),并根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。通過(guò)對(duì)待發(fā)送數(shù)據(jù)進(jìn)行緩存以及在需要發(fā)送數(shù)據(jù)時(shí)獲取配置參數(shù),從而可以保證在網(wǎng)絡(luò)中斷或是獲取配置參數(shù)延遲時(shí)數(shù)據(jù)都不會(huì)丟失,解決了相關(guān)技術(shù)中因獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲導(dǎo)致發(fā)送的數(shù)據(jù)丟失的問(wèn)題,進(jìn)而達(dá)到了在網(wǎng)絡(luò)中斷或是獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)延遲時(shí)防止數(shù)據(jù)丟失的效果。
可選地,第二發(fā)送單元40包括:獲取模塊,用于從配置站點(diǎn)獲取配置參數(shù),其中,配置站點(diǎn)用于設(shè)置數(shù)據(jù)采集系統(tǒng)的配置參數(shù);以及第一判斷模塊,用于判斷獲取配置參數(shù)是否成功,其中,當(dāng)從配置站點(diǎn)獲取配置參數(shù)成功時(shí),則根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),當(dāng)從配置站點(diǎn)獲取配置參數(shù)失敗時(shí),返回存儲(chǔ)單元執(zhí)行將待發(fā)送數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)隊(duì)列中。
可選地,獲取模塊包括:第一獲取子模塊,用于獲取數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí);讀取子模塊,用于根據(jù)數(shù)據(jù)采集系統(tǒng)的唯一標(biāo)識(shí)從配置站點(diǎn)中讀取數(shù)據(jù)采集系統(tǒng)的配置文件;以及第二獲取子模塊,用于從數(shù)據(jù)采集系統(tǒng)的配置文件中獲取配置參數(shù)。例如,唯一標(biāo)識(shí)可以是一串?dāng)?shù)字或字母,第一獲取子模塊根據(jù)這一串?dāng)?shù)字或者字母組成的標(biāo)識(shí)來(lái)識(shí)別數(shù)據(jù)采集系統(tǒng)的身份,第二獲取子模塊從配置站點(diǎn)中讀取與數(shù)據(jù)采集系統(tǒng)對(duì)應(yīng)的配置文件。
可選地,該裝置還包括:第二檢測(cè)單元,用于檢測(cè)配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)是否進(jìn)行了更新;以及獲取單元,用于在檢測(cè)出配置站點(diǎn)中數(shù)據(jù)采集系統(tǒng)的配置參數(shù)進(jìn)行了更新時(shí),重新從配置站點(diǎn)中獲取數(shù)據(jù)采集系統(tǒng)的配置參數(shù)。
可選地,該裝置還包括:第三檢測(cè)單元,用于檢測(cè)網(wǎng)絡(luò)環(huán)境是否適于發(fā)送數(shù)據(jù),其中,第一發(fā)送單元30用于在第一檢測(cè)單元20檢測(cè)出已獲取到配置參數(shù),且在第三檢測(cè)單元檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù),第二發(fā)送單元40用于在第一檢測(cè)單元20檢測(cè)出未獲取到配置參數(shù)時(shí),獲取配置參數(shù),且在第三檢測(cè)單元檢測(cè)出網(wǎng)絡(luò)環(huán)境適于發(fā)送數(shù)據(jù)時(shí),根據(jù)已獲取到的配置參數(shù)發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
可選地,配置參數(shù)包括采樣率和數(shù)據(jù)發(fā)送地址,第一數(shù)據(jù)發(fā)送單元30或第二數(shù)據(jù)發(fā)送單元40還包括:第二判斷模塊,用于根據(jù)采樣率判斷是否需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù);以及發(fā)送模塊,用于在判斷出需要發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)時(shí),根據(jù)數(shù)據(jù)發(fā)送地址發(fā)送數(shù)據(jù)隊(duì)列中的數(shù)據(jù)。
上述本申請(qǐng)實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本申請(qǐng)的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有 詳述的部分,可以參見(jiàn)其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本申請(qǐng)的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本申請(qǐng)?jiān)淼那疤嵯拢€可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本申請(qǐng)的保護(hù)范圍。