最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

數(shù)據(jù)寫(xiě)入方法及裝置和電子設(shè)備與流程

文檔序號(hào):11215864閱讀:581來(lái)源:國(guó)知局
數(shù)據(jù)寫(xiě)入方法及裝置和電子設(shè)備與流程

本申請(qǐng)涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)寫(xiě)入方法及裝置和電子設(shè)備。



背景技術(shù):

隨著互聯(lián)網(wǎng)的不斷發(fā)展,使用互聯(lián)網(wǎng)的用戶(hù)越來(lái)越大,隨之而來(lái)生成的數(shù)據(jù)也呈指數(shù)增長(zhǎng)。

在一些需要人為寫(xiě)入數(shù)據(jù)的場(chǎng)景中如搜索引擎、消息隊(duì)列,也出現(xiàn)了需要寫(xiě)入海量數(shù)據(jù)的情況。面對(duì)海量數(shù)據(jù),傳統(tǒng)的單條數(shù)據(jù)寫(xiě)入方式由于效率較低通常都被批量數(shù)據(jù)寫(xiě)入方式所替代。

然而,現(xiàn)有的批量數(shù)據(jù)寫(xiě)入存在用戶(hù)操作復(fù)雜的問(wèn)題。



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

本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)寫(xiě)入方法及裝置,以解決現(xiàn)有技術(shù)中存在的批量數(shù)據(jù)寫(xiě)入操作復(fù)雜的問(wèn)題。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入方法,所述方法包括:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入方法,所述方法包括:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入方法,所述方法包括:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入方法,所述方法包括:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入裝置,所述裝置包括:

獲取數(shù)據(jù)單元,獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

添加數(shù)據(jù)單元,將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

發(fā)送數(shù)據(jù)單元,在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入裝置,所述裝置包括:

獲取數(shù)據(jù)單元,獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

添加數(shù)據(jù)單元,將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

寫(xiě)入數(shù)據(jù)單元,在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入裝置,所述裝置包括:

獲取數(shù)據(jù)單元,獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

寫(xiě)入數(shù)據(jù)單元,將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

異常處理單元,在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)寫(xiě)入裝置,所述裝置包括:

獲取數(shù)據(jù)單元,獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

發(fā)送數(shù)據(jù)單元,將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

異常處理單元,在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

根據(jù)本申請(qǐng)實(shí)施例提供的一種電子設(shè)備,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

根據(jù)本申請(qǐng)實(shí)施例提供的一種電子設(shè)備,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種電子設(shè)備,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

根據(jù)本申請(qǐng)實(shí)施例提供的一種電子設(shè)備,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

本申請(qǐng)實(shí)施例中,通過(guò)將用戶(hù)提交的單條數(shù)據(jù)添加到緩存隊(duì)列中,并通過(guò)設(shè)置控制器來(lái)觸發(fā)設(shè)定指令,該設(shè)定指令用于將緩存隊(duì)列中所有單條數(shù)據(jù)發(fā)送到服務(wù)端或者寫(xiě)入到本地存儲(chǔ)設(shè)備。如此,可以將用戶(hù)單條數(shù)據(jù)寫(xiě)入轉(zhuǎn)換為自動(dòng)批量數(shù)據(jù)寫(xiě)入。對(duì)于用戶(hù)而言,雖然依然使用單條數(shù)據(jù)接口提交數(shù)據(jù),但其實(shí)最終是一種批量數(shù)據(jù)寫(xiě)入的方式,這樣就提高了數(shù)據(jù)寫(xiě)入效率;而且用戶(hù)并不感知批量數(shù)據(jù)寫(xiě)入過(guò)程,也無(wú)需在批量數(shù)據(jù)寫(xiě)入過(guò)程中進(jìn)行操作。相對(duì)于現(xiàn)有的單條數(shù)據(jù)寫(xiě)入方式,應(yīng)用本實(shí)施例可以提高數(shù)據(jù)寫(xiě)入效率;相對(duì)于現(xiàn)有的批量數(shù)據(jù)寫(xiě)入方式,應(yīng)用本實(shí)施例,用戶(hù)無(wú)需除了提交單條數(shù)據(jù)的操作,無(wú)需進(jìn)行其它額外操作,簡(jiǎn)化了用戶(hù)操作,提高了用戶(hù)體驗(yàn)。

附圖說(shuō)明

圖1是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖;

圖2是本申請(qǐng)一實(shí)施例提供的客戶(hù)端內(nèi)部模塊示意圖;

圖3是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖;

圖4是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖;

圖5是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖;

圖6是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入裝置的模塊示意圖;

圖7是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入裝置的模塊示意圖;

圖8是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入裝置的模塊示意圖;

圖9是本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入裝置的模塊示意圖。

具體實(shí)施方式

這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。

在本申請(qǐng)使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。

應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類(lèi)型的信息彼此區(qū)分開(kāi)。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱(chēng)為第二信息,類(lèi)似地,第二信息也可以被稱(chēng)為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。

如前所述,現(xiàn)有的批量數(shù)據(jù)寫(xiě)入方式,提供用戶(hù)一個(gè)批量數(shù)據(jù)接口,用戶(hù)通過(guò)該批量數(shù)據(jù)接口主動(dòng)進(jìn)行批量數(shù)據(jù)寫(xiě)入操作。這里的批量數(shù)據(jù)寫(xiě)入操作對(duì)于用戶(hù)來(lái)說(shuō)比較復(fù)雜。

例如,在進(jìn)行批量數(shù)據(jù)寫(xiě)入過(guò)程中,數(shù)據(jù)寫(xiě)入系統(tǒng)如果發(fā)送異常如關(guān)閉,則用戶(hù)需要手動(dòng)將剩余未寫(xiě)入的數(shù)據(jù)發(fā)送。

另一方面,對(duì)于搜索引擎、消息隊(duì)列這類(lèi)場(chǎng)景,待寫(xiě)入的數(shù)據(jù)具有很高的時(shí)效性,這樣就要求用戶(hù)實(shí)時(shí)關(guān)注待寫(xiě)入數(shù)據(jù)的時(shí)效性,如果某個(gè)數(shù)據(jù)超過(guò)了預(yù)設(shè)時(shí)長(zhǎng),即不具有時(shí)效性,該數(shù)據(jù)就無(wú)法寫(xiě)入或者寫(xiě)入后會(huì)導(dǎo)致系統(tǒng)異常。對(duì)于不具有時(shí)效性的數(shù)據(jù),用戶(hù)必須將其從批量數(shù)據(jù)中找到并取回。

現(xiàn)有的批量數(shù)據(jù)寫(xiě)入操作過(guò)于復(fù)雜,有些用戶(hù)寧可使用傳統(tǒng)的單條數(shù)據(jù)寫(xiě)入方式,從而影響數(shù)據(jù)寫(xiě)入的效率。

為了解決上述問(wèn)題,請(qǐng)參見(jiàn)圖1,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖,所述方法包括以下步驟:

步驟110:獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù)。

一般的,對(duì)于業(yè)務(wù)系統(tǒng)來(lái)說(shuō),數(shù)據(jù)通常都是存儲(chǔ)在服務(wù)端的;而用戶(hù)可以使用客戶(hù)端與該服務(wù)端進(jìn)行數(shù)據(jù)交互從而實(shí)現(xiàn)業(yè)務(wù)往來(lái)。在本實(shí)施例中,用于進(jìn)行數(shù)據(jù)寫(xiě)入的系統(tǒng)也可以包括服務(wù)端以及至少一個(gè)的客戶(hù)端。具體地,用戶(hù)可以在客戶(hù)端進(jìn)行數(shù)據(jù)寫(xiě)入操作,并通過(guò)該客戶(hù)端將需要寫(xiě)入的數(shù)據(jù)發(fā)送給服務(wù)端,由服務(wù)端寫(xiě)入到存儲(chǔ)設(shè)備。

數(shù)據(jù)寫(xiě)入系統(tǒng)通過(guò)提供客戶(hù)端單條數(shù)據(jù)接口,如此,用戶(hù)可以在客戶(hù)端上通過(guò)單條數(shù)據(jù)接口一條一條的遞交單條數(shù)據(jù)??梢岳斫獾?,對(duì)于用戶(hù)來(lái)說(shuō),依然使用的是一種單條數(shù)據(jù)寫(xiě)入方式。

步驟120:將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

但是,客戶(hù)端在接收到用戶(hù)提交的單條數(shù)據(jù)之后,并不是如現(xiàn)有技術(shù)那樣直接將該單條數(shù)據(jù)發(fā)送給服務(wù)端,從而完成一次單條數(shù)據(jù)寫(xiě)入過(guò)程;而是,將所述單條數(shù)據(jù)添加到緩存隊(duì)列中。

所述緩存隊(duì)列用于緩存用戶(hù)提交的單條數(shù)據(jù)。在控制器未觸發(fā)設(shè)定指令時(shí),只要客戶(hù)端獲取到用戶(hù)提交的單條數(shù)據(jù),就可以持續(xù)添加到緩存隊(duì)列中。

步驟130:在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

以下結(jié)合圖2所示客戶(hù)端內(nèi)部模塊示意圖,可以包括處理器、緩存隊(duì)列、批量發(fā)送器、定時(shí)器和事件監(jiān)聽(tīng)器,這些模塊可以理解成客戶(hù)端內(nèi)部用于執(zhí)行不同功能的軟件模塊。

處理器獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

所述處理器將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在處理器、定時(shí)器或事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,所述批量發(fā)送器將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

在一種方式中:

所述控制器可以包括定時(shí)器,其中,所述定時(shí)器在到達(dá)定時(shí)周期的情況下,觸發(fā)設(shè)定指令。

如前所述,待寫(xiě)入的數(shù)據(jù)通常有著非常高的時(shí)效性要求;因此,本實(shí)施例通過(guò)設(shè)置定時(shí)器,并且該定時(shí)器設(shè)定一個(gè)定時(shí)周期,在定時(shí)器計(jì)時(shí)到達(dá)該定時(shí)周期后,就可以觸發(fā)設(shè)定指令。從而可以控制批量發(fā)送器周期性的將緩存隊(duì)列中的數(shù)據(jù)發(fā)送給服務(wù)端,也就是說(shuō),在隊(duì)列中第一條數(shù)據(jù)寫(xiě)入后,必定到達(dá)定時(shí)周期發(fā)送出去,避免第一條數(shù)據(jù)過(guò)期。

所述定時(shí)器設(shè)定的定時(shí)周期可以是數(shù)據(jù)最大忍耐時(shí)長(zhǎng)例如100毫秒;當(dāng)然設(shè)定的定時(shí)周期可以根據(jù)實(shí)際需要靈活設(shè)定。

通過(guò)設(shè)置定時(shí)器,可以免去用戶(hù)人為關(guān)注數(shù)據(jù)時(shí)效性的問(wèn)題;用戶(hù)只需提交數(shù)據(jù)即可,簡(jiǎn)化操作,提高數(shù)據(jù)寫(xiě)入效率,用戶(hù)體驗(yàn)較好。

在另一種方式中:

所述控制器可以包括事件監(jiān)聽(tīng)器;其中,所述事件監(jiān)聽(tīng)器在監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入程序關(guān)閉的情況下,觸發(fā)設(shè)定指令。

如前所述,在批量數(shù)據(jù)寫(xiě)入過(guò)程中,如果數(shù)據(jù)寫(xiě)入程序異常關(guān)閉(例如程序被終止),數(shù)據(jù)隊(duì)列中未發(fā)送的數(shù)據(jù)必須要用戶(hù)人為進(jìn)行操作,將未發(fā)送的數(shù)據(jù)發(fā)送給服務(wù)端。

本實(shí)施例中,通過(guò)設(shè)置事件監(jiān)聽(tīng)器,該事件監(jiān)聽(tīng)器用于監(jiān)測(cè)數(shù)據(jù)寫(xiě)入程序是否關(guān)閉,只要監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入關(guān)閉(包括異常關(guān)閉以及正常關(guān)閉),就可以觸發(fā)設(shè)定指令。也就是說(shuō),只要數(shù)據(jù)寫(xiě)入程序關(guān)閉,事件監(jiān)聽(tīng)器就可以控制批量發(fā)送器將緩存隊(duì)列中未發(fā)送的單條數(shù)據(jù)再次批量發(fā)送給服務(wù)端,而無(wú)需用戶(hù)介入操作。所述事件監(jiān)聽(tīng)器可以包括例如系統(tǒng)鉤子(systemhook)。

所述步驟130中,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端,具體可以包括:

對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

將序列化后的數(shù)據(jù)發(fā)送到服務(wù)端。

該實(shí)施例中,所述序列化(serialization)是一種將數(shù)據(jù)的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或者傳輸形式的過(guò)程。也就是說(shuō),數(shù)據(jù)如果需要進(jìn)行存儲(chǔ)或者傳輸,需要預(yù)先進(jìn)行序列化。

通過(guò)本實(shí)施例,將用戶(hù)提交的單條數(shù)據(jù)添加到緩存隊(duì)列中,并通過(guò)設(shè)置控制器來(lái)觸發(fā)設(shè)定指令,該設(shè)定指令可以用于發(fā)送緩存隊(duì)列中所有單條數(shù)據(jù)。如此,可以將用戶(hù)單條數(shù)據(jù)寫(xiě)入轉(zhuǎn)換為自動(dòng)批量數(shù)據(jù)寫(xiě)入。對(duì)于用戶(hù)而言,雖然依然使用單條數(shù)據(jù)接口提交數(shù)據(jù),但其實(shí)最終是一種批量數(shù)據(jù)寫(xiě)入的方式,這樣就提高了數(shù)據(jù)寫(xiě)入效率;而且用戶(hù)并不感知批量數(shù)據(jù)寫(xiě)入過(guò)程,也無(wú)需在數(shù)據(jù)寫(xiě)入過(guò)程中進(jìn)行操作。相對(duì)于現(xiàn)有的單條數(shù)據(jù)寫(xiě)入方式,應(yīng)用本實(shí)施例可以提高數(shù)據(jù)寫(xiě)入效率;相對(duì)于現(xiàn)有的批量數(shù)據(jù)寫(xiě)入方式,應(yīng)用本實(shí)施例,用戶(hù)無(wú)需除了提交單條數(shù)據(jù)的操作,無(wú)需進(jìn)行其它額外操作,簡(jiǎn)化了用戶(hù)操作,提高了用戶(hù)體驗(yàn)。

在本申請(qǐng)的一個(gè)具體實(shí)施例中,所述將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端,具體可以包括:

對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

將序列化后的數(shù)據(jù)緩存到內(nèi)存,清空所述數(shù)據(jù)隊(duì)列;

將緩存在內(nèi)存中的所述序列化的數(shù)據(jù)發(fā)送到服務(wù)端。

本實(shí)施例中,實(shí)際應(yīng)用時(shí),在序列化處理過(guò)程中,可以將當(dāng)前狀態(tài)的數(shù)據(jù)寫(xiě)入到臨時(shí)存儲(chǔ)區(qū)域如內(nèi)存中。之后,可以從內(nèi)存中讀取或反序列化數(shù)據(jù)的狀態(tài)信息,重新創(chuàng)建出該數(shù)據(jù)。

所述內(nèi)存設(shè)有內(nèi)存上限;其中,在所述內(nèi)存中數(shù)據(jù)量達(dá)到所述內(nèi)存上限的情況下,阻塞寫(xiě)入所述內(nèi)存的數(shù)據(jù)。

本實(shí)施例與上一實(shí)施例不同之處在于,本實(shí)施例先將緩存隊(duì)列中單條數(shù)據(jù)緩存到內(nèi)存中,并清空緩存隊(duì)列。及時(shí)清空數(shù)據(jù)隊(duì)列可以避免由于等待緩存隊(duì)列中數(shù)據(jù)發(fā)送而導(dǎo)致無(wú)法添加新獲取的單條數(shù)據(jù),可以及時(shí)添加用戶(hù)新提交的單條數(shù)據(jù),從而可以提高數(shù)據(jù)寫(xiě)入效率。

在圖1所示實(shí)施例基礎(chǔ)上,在一個(gè)具體地實(shí)施例中,所述步驟120之前,所述方法還可以包括:

判斷緩存隊(duì)列是否已滿(mǎn);

所述步驟120,具體可以包括:

在所述緩存隊(duì)列未滿(mǎn)的情況下,將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

在所述緩存隊(duì)列已滿(mǎn)的情況下,觸發(fā)設(shè)定指令。

在實(shí)際應(yīng)用中,緩存隊(duì)列通常設(shè)置有一個(gè)隊(duì)列上限,當(dāng)緩存隊(duì)列中數(shù)據(jù)量達(dá)到該隊(duì)列上限后,緩存隊(duì)列就沒(méi)有空間存放新的數(shù)據(jù)。為此,如圖2所示,處理器在獲取到用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù)之后,可以判斷緩存隊(duì)列是否已滿(mǎn),例如判斷該緩存隊(duì)列中緩存的數(shù)據(jù)量是否到達(dá)隊(duì)列上限;如果到達(dá)隊(duì)列上限,則說(shuō)明該緩存隊(duì)列已滿(mǎn),此時(shí)緩存隊(duì)列中無(wú)法添加新的單條數(shù)據(jù),需要等待該緩存隊(duì)列清空后才能進(jìn)行添加;等待過(guò)程中,處理器由于判斷得出緩存隊(duì)列已滿(mǎn),因此可以觸發(fā)設(shè)定指令,控制批量發(fā)送器執(zhí)行步驟130;如果未到達(dá)隊(duì)列上限,則說(shuō)明該緩存隊(duì)列未滿(mǎn),處理器可以將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

請(qǐng)參見(jiàn)圖3,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖,所述方法包括以下步驟:

步驟310:獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù)。

該步驟與前述實(shí)施例中步驟110類(lèi)似,此處不再贅述。

步驟320:將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

該步驟與前述實(shí)施例中步驟110類(lèi)似,此處不再贅述。

步驟330:在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

與前述實(shí)施例類(lèi)似的,所述控制器包括定時(shí)器;其中,所述定時(shí)器設(shè)置有定時(shí)周期,所述定時(shí)器周期性地觸發(fā)所述設(shè)定指令。

所述控制器包括事件監(jiān)聽(tīng)器;其中,所述事件監(jiān)聽(tīng)器在監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入程序關(guān)閉的情況下,觸發(fā)設(shè)定指令。

第一種方式中:

所述將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備,具體包括:

對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

將串行化后的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備。

第二種方式中:

所述將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備,具體包括:

對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

將序列化后的數(shù)據(jù)緩存到內(nèi)存,清空所述數(shù)據(jù)隊(duì)列;

將緩存在內(nèi)存中的所述序列化的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備。

該方式中,所述內(nèi)存設(shè)有內(nèi)存上限;其中,在所述內(nèi)存中數(shù)據(jù)量達(dá)到所述內(nèi)存上限的情況下,阻塞寫(xiě)入所述內(nèi)存的數(shù)據(jù)。

本實(shí)施例中,執(zhí)行主體可以?xún)H是前述的客戶(hù)端,也可以?xún)H是服務(wù)端。例如,用戶(hù)可以直接在服務(wù)端上操作,提交單條數(shù)據(jù);這樣,對(duì)于服務(wù)端來(lái)說(shuō),最終將緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到本地的存儲(chǔ)設(shè)備。

再例如,對(duì)于分布式系統(tǒng)中,每一臺(tái)客戶(hù)端都可以視為服務(wù)端集群下的一個(gè)子服務(wù)端。這樣,用戶(hù)就可以在客戶(hù)端操作,提交單條數(shù)據(jù),并最終將緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到本地的存儲(chǔ)設(shè)備,而無(wú)需發(fā)送給服務(wù)端。

由于圖3所示實(shí)施例與圖1所示實(shí)施例區(qū)別僅在于步驟330中將所述緩存隊(duì)列中所述單條數(shù)據(jù)批量寫(xiě)入待存儲(chǔ)設(shè)備而不是發(fā)送給服務(wù)端,因此本實(shí)施例以及其它相關(guān)步驟可以參考前述實(shí)施例中相應(yīng)說(shuō)明。

在圖3所示實(shí)施例的基礎(chǔ)上,在所述步驟320之前,所述方法可以包括:

判斷緩存隊(duì)列是否已滿(mǎn);

所述步驟320,具體可以包括:

在所述緩存隊(duì)列未滿(mǎn)的情況下,將所接收的單條數(shù)據(jù)添加到緩存隊(duì)列。

在所述緩存隊(duì)列已滿(mǎn)的情況下,觸發(fā)設(shè)定指令。

請(qǐng)參見(jiàn)圖4,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖,所述方法包括以下步驟:

步驟410:獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

步驟420:將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

步驟430:在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

前述實(shí)施例均是向用戶(hù)提供單條數(shù)據(jù)接口,本實(shí)施例中用戶(hù)可以通過(guò)與現(xiàn)有相同的批量數(shù)據(jù)接口批量提交數(shù)據(jù),即以數(shù)據(jù)隊(duì)列的形式,該數(shù)據(jù)隊(duì)列中包括了用戶(hù)提交的至少一條的單條數(shù)據(jù)。

和圖3所示實(shí)施例相同的場(chǎng)景,即數(shù)據(jù)最終是寫(xiě)入到本地的。

為了解決現(xiàn)有批量數(shù)據(jù)寫(xiě)入方式中,在批量數(shù)據(jù)寫(xiě)入過(guò)程中,如果數(shù)據(jù)寫(xiě)入程序異常關(guān)閉(例如程序被終止),數(shù)據(jù)隊(duì)列中未寫(xiě)入的數(shù)據(jù)必須要用戶(hù)人為進(jìn)行操作,將未寫(xiě)入的數(shù)據(jù)繼續(xù)寫(xiě)入存儲(chǔ)設(shè)備。本實(shí)施例中,通過(guò)設(shè)置事件監(jiān)聽(tīng)器,該事件監(jiān)聽(tīng)器用于監(jiān)測(cè)數(shù)據(jù)寫(xiě)入程序是否關(guān)閉,只要監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入關(guān)閉(包括異常關(guān)閉以及正常關(guān)閉),就可以觸發(fā)設(shè)定指令。也就是說(shuō),只要數(shù)據(jù)寫(xiě)入程序關(guān)閉,事件監(jiān)聽(tīng)器就可以控制批量發(fā)送器將緩存隊(duì)列中未發(fā)送的單條數(shù)據(jù)再次批量寫(xiě)入存儲(chǔ)設(shè)備,而無(wú)需用戶(hù)介入操作。所述事件監(jiān)聽(tīng)器可以包括例如系統(tǒng)鉤子(systemhook)。

請(qǐng)參見(jiàn)圖5,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入方法的流程圖,所述方法包括以下步驟:

步驟510:獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

步驟520:將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

步驟530:在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

前述實(shí)施例均是向用戶(hù)提供單條數(shù)據(jù)接口,本實(shí)施例中用戶(hù)可以通過(guò)與現(xiàn)有相同的批量數(shù)據(jù)接口批量提交數(shù)據(jù),即以數(shù)據(jù)隊(duì)列的形式,該數(shù)據(jù)隊(duì)列中包括了用戶(hù)提交的至少一條的單條數(shù)據(jù)。

和圖1所示實(shí)施例相同的系統(tǒng)架構(gòu),即客戶(hù)端-服務(wù)端架構(gòu),客戶(hù)端需要將數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端,由服務(wù)端寫(xiě)入存儲(chǔ)設(shè)備。

為了解決現(xiàn)有批量數(shù)據(jù)寫(xiě)入方式中,在批量數(shù)據(jù)發(fā)送過(guò)程中,如果數(shù)據(jù)寫(xiě)入程序異常關(guān)閉(例如程序被終止),數(shù)據(jù)隊(duì)列中未發(fā)送的數(shù)據(jù)必須要用戶(hù)人為進(jìn)行操作,將未發(fā)送的數(shù)據(jù)繼續(xù)發(fā)送給服務(wù)端。本實(shí)施例中,通過(guò)設(shè)置事件監(jiān)聽(tīng)器,該事件監(jiān)聽(tīng)器用于監(jiān)測(cè)數(shù)據(jù)寫(xiě)入程序是否關(guān)閉,只要監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入關(guān)閉(包括異常關(guān)閉以及正常關(guān)閉),就可以觸發(fā)設(shè)定指令。也就是說(shuō),只要數(shù)據(jù)寫(xiě)入程序關(guān)閉,事件監(jiān)聽(tīng)器就可以控制批量發(fā)送器將數(shù)據(jù)隊(duì)列中未發(fā)送的單條數(shù)據(jù)再次批量發(fā)送給服務(wù)端,而無(wú)需用戶(hù)介入操作。所述事件監(jiān)聽(tīng)器可以包括例如系統(tǒng)鉤子(systemhook)。

與前述圖1所述的數(shù)據(jù)寫(xiě)入方法實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了一種數(shù)據(jù)寫(xiě)入裝置的實(shí)施例。所述裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,本申請(qǐng)數(shù)據(jù)寫(xiě)入裝置所在設(shè)備的一種硬件結(jié)構(gòu)可以包括處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常根據(jù)該數(shù)據(jù)寫(xiě)入實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。

參見(jiàn)圖6,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)寫(xiě)入裝置的模塊圖,所述裝置包括:獲取數(shù)據(jù)單元610、添加數(shù)據(jù)單元620和發(fā)送數(shù)據(jù)單元630。

其中,獲取數(shù)據(jù)單元610,獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

添加數(shù)據(jù)單元620,將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

發(fā)送數(shù)據(jù)單元630,在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

在一個(gè)可選的實(shí)施例中:

在所述添加數(shù)據(jù)單元620之前,所述裝置還包括:

判斷子單元,判斷緩存隊(duì)列是否已滿(mǎn);

所述添加數(shù)據(jù)單元620,具體包括:

在所述緩存隊(duì)列未滿(mǎn)的情況下,將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

在一個(gè)可選的實(shí)施例中:

所述裝置還包括:

觸發(fā)指令子單元,在所述緩存隊(duì)列已滿(mǎn)的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述控制器包括定時(shí)器;其中,所述定時(shí)器在到達(dá)定時(shí)周期的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述控制器包括事件監(jiān)聽(tīng)器;其中,所述事件監(jiān)聽(tīng)器在監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入程序關(guān)閉的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述發(fā)送數(shù)據(jù)單元630,具體包括:

序列化子單元,在控制器觸發(fā)設(shè)定指令的情況下,對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

發(fā)送子單元,將序列化后的數(shù)據(jù)發(fā)送到服務(wù)端。

在一個(gè)可選的實(shí)施例中:

所述發(fā)送數(shù)據(jù)單元630,具體包括:

序列化子單元,在控制器觸發(fā)設(shè)定指令的情況下,對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

處理子單元,將序列化后的數(shù)據(jù)緩存到內(nèi)存,清空所述數(shù)據(jù)隊(duì)列;

發(fā)送子單元,將緩存在內(nèi)存中的所述序列化的數(shù)據(jù)發(fā)送到服務(wù)端。

在一個(gè)可選的實(shí)施例中:

所述內(nèi)存設(shè)有內(nèi)存上限;其中,在所述內(nèi)存中數(shù)據(jù)量達(dá)到所述內(nèi)存上限的情況下,阻塞寫(xiě)入所述內(nèi)存的數(shù)據(jù)。

與前述圖3所述的數(shù)據(jù)采集方法實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了一種數(shù)據(jù)采集裝置的實(shí)施例。所述裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,本申請(qǐng)數(shù)據(jù)寫(xiě)入裝置所在設(shè)備的一種硬件結(jié)構(gòu)可以包括處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常根據(jù)該數(shù)據(jù)寫(xiě)入實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。

參見(jiàn)圖7,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集裝置的模塊圖,所述裝置包括:獲取數(shù)據(jù)單元710、添加數(shù)據(jù)單元720和發(fā)送數(shù)據(jù)單元730。

其中,獲取數(shù)據(jù)單元710,獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

添加數(shù)據(jù)單元720,將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

寫(xiě)入數(shù)據(jù)單元730,在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

在一個(gè)可選的實(shí)施例中:

在所述添加數(shù)據(jù)單元720之前,所述裝置還包括:

判斷子單元,判斷緩存隊(duì)列是否已滿(mǎn);

所述添加數(shù)據(jù)單元720,具體包括:

在所述緩存隊(duì)列未滿(mǎn)的情況下,將所述單條數(shù)據(jù)添加到緩存隊(duì)列。

在一個(gè)可選的實(shí)施例中:

所述裝置還包括:

觸發(fā)指令子單元,在所述緩存隊(duì)列已滿(mǎn)的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述控制器包括定時(shí)器;其中,所述定時(shí)器在到達(dá)定時(shí)周期的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述控制器包括事件監(jiān)聽(tīng)器;其中,所述事件監(jiān)聽(tīng)器在監(jiān)測(cè)到數(shù)據(jù)寫(xiě)入程序關(guān)閉的情況下,觸發(fā)設(shè)定指令。

在一個(gè)可選的實(shí)施例中:

所述寫(xiě)入數(shù)據(jù)單元730,具體包括:

序列化子單元,在控制器觸發(fā)設(shè)定指令的情況下,對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

寫(xiě)入子單元,將序列化后的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備。

在一個(gè)可選的實(shí)施例中:

所述寫(xiě)入數(shù)據(jù)單元730,具體包括:

序列化子單元,在控制器觸發(fā)設(shè)定指令的情況下,對(duì)所述緩存隊(duì)列中所有單條數(shù)據(jù)序列化處理;

處理子單元,將序列化后的數(shù)據(jù)緩存到內(nèi)存,清空所述數(shù)據(jù)隊(duì)列;

寫(xiě)入子單元,將緩存在內(nèi)存中的所述序列化的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備。

在一個(gè)可選的實(shí)施例中:

所述內(nèi)存設(shè)有內(nèi)存上限;其中,在所述內(nèi)存中數(shù)據(jù)量達(dá)到所述內(nèi)存上限的情況下,阻塞寫(xiě)入所述內(nèi)存的數(shù)據(jù)。

與前述圖4所述的數(shù)據(jù)采集方法實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了一種數(shù)據(jù)采集裝置的實(shí)施例。所述裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,本申請(qǐng)數(shù)據(jù)寫(xiě)入裝置所在設(shè)備的一種硬件結(jié)構(gòu)可以包括處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常根據(jù)該數(shù)據(jù)寫(xiě)入實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。

參見(jiàn)圖8,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集裝置的模塊圖,所述裝置包括:獲取數(shù)據(jù)單元810、寫(xiě)入數(shù)據(jù)單元820和異常處理單元830。

其中,獲取數(shù)據(jù)單元810,獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

寫(xiě)入數(shù)據(jù)單元820,將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

異常處理單元830,在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

與前述圖5所述的數(shù)據(jù)采集方法實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了一種數(shù)據(jù)采集裝置的實(shí)施例。所述裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,本申請(qǐng)數(shù)據(jù)寫(xiě)入裝置所在設(shè)備的一種硬件結(jié)構(gòu)可以包括處理器、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常根據(jù)該數(shù)據(jù)寫(xiě)入實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。

參見(jiàn)圖9,為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)采集裝置的模塊圖,所述裝置包括:獲取數(shù)據(jù)單元910、發(fā)送數(shù)據(jù)單元920和異常處理單元930。

其中,獲取數(shù)據(jù)單元810,獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

發(fā)送數(shù)據(jù)單元820,將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

異常處理單元830,在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)設(shè)備為計(jì)算機(jī),計(jì)算機(jī)的具體形式可以是個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話(huà)、相機(jī)電話(huà)、智能電話(huà)、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件收發(fā)設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備或者這些設(shè)備中的任意幾種設(shè)備的組合。

上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。

對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。

以上圖6描述了數(shù)據(jù)寫(xiě)入裝置的內(nèi)部功能模塊和結(jié)構(gòu)示意,其實(shí)質(zhì)上的執(zhí)行主體可以為一種電子設(shè)備,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器被配置為:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量發(fā)送到服務(wù)端。

類(lèi)似的,以上圖7描述了數(shù)據(jù)采集裝置的內(nèi)部功能模塊和結(jié)構(gòu)示意,其實(shí)質(zhì)上的執(zhí)行主體可以為一種電子設(shè)備,包括:

獲取用戶(hù)通過(guò)單條數(shù)據(jù)接口提交的單條數(shù)據(jù);

將所述單條數(shù)據(jù)添加到緩存隊(duì)列;

在控制器觸發(fā)設(shè)定指令的情況下,將所述緩存隊(duì)列中所有單條數(shù)據(jù)批量寫(xiě)入到存儲(chǔ)設(shè)備。

類(lèi)似的,以上圖8描述了數(shù)據(jù)采集裝置的內(nèi)部功能模塊和結(jié)構(gòu)示意,其實(shí)質(zhì)上的執(zhí)行主體可以為一種電子設(shè)備,包括:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)寫(xiě)入到存儲(chǔ)設(shè)備;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未寫(xiě)入到存儲(chǔ)設(shè)備的數(shù)據(jù)批量寫(xiě)入到所述存儲(chǔ)設(shè)備。

類(lèi)似的,以上圖9描述了數(shù)據(jù)采集裝置的內(nèi)部功能模塊和結(jié)構(gòu)示意,其實(shí)質(zhì)上的執(zhí)行主體可以為一種電子設(shè)備,包括:

獲取用戶(hù)通過(guò)批量數(shù)據(jù)接口提交的數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中保存有至少一條的單條數(shù)據(jù);

將所述數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送到服務(wù)端;

在事件監(jiān)聽(tīng)器觸發(fā)設(shè)定指令的情況下,將所述數(shù)據(jù)隊(duì)列中未發(fā)送到服務(wù)端的數(shù)據(jù)批量發(fā)送到所述服務(wù)端。

在上述電子設(shè)備的實(shí)施例中,應(yīng)理解,該處理器可以是中央處理單元(英文:centralprocessingunit,簡(jiǎn)稱(chēng):cpu),還可以是其他通用處理器、數(shù)字信號(hào)處理器(英文:digitalsignalprocessor,簡(jiǎn)稱(chēng):dsp)、專(zhuān)用集成電路(英文:applicationspecificintegratedcircuit,簡(jiǎn)稱(chēng):asic)等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,而前述的存儲(chǔ)器可以是只讀存儲(chǔ)器(英文:read-onlymemory,縮寫(xiě):rom)、隨機(jī)存取存儲(chǔ)器(英文:randomaccessmemory,簡(jiǎn)稱(chēng):ram)、快閃存儲(chǔ)器、硬盤(pán)或者固態(tài)硬盤(pán)。結(jié)合本發(fā)明實(shí)施例所公開(kāi)的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。

本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于電子設(shè)備實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。

本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本申請(qǐng)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本申請(qǐng)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本申請(qǐng)的一般性原理并包括本申請(qǐng)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本申請(qǐng)的真正范圍和精神由下面的權(quán)利要求指出。

應(yīng)當(dāng)理解的是,本申請(qǐng)并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本申請(qǐng)的范圍僅由所附的權(quán)利要求來(lái)限制。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1