本申請(qǐng)涉及互聯(lián)網(wǎng)
技術(shù)領(lǐng)域:
:,尤其涉及一種監(jiān)控方法和系統(tǒng)。
背景技術(shù):
::在日常工作中,存在關(guān)鍵業(yè)務(wù)數(shù)據(jù),例如:金融系統(tǒng)的匯率配置、基金交易日配置、銀行系統(tǒng)利率配置等。如果關(guān)鍵業(yè)務(wù)數(shù)據(jù)變更而數(shù)據(jù)使用方未能及時(shí)感知到,導(dǎo)致的后果可能是嚴(yán)重的,例如:流量、訂單量等大幅下降、甚至產(chǎn)生資損等。但是,目前的監(jiān)控平臺(tái),通常都是針對(duì)服務(wù)器進(jìn)行監(jiān)控的,監(jiān)控的內(nèi)容是服務(wù)器的運(yùn)行情況、內(nèi)存、網(wǎng)絡(luò)流量等。目前的監(jiān)控平臺(tái)無(wú)法實(shí)現(xiàn)對(duì)底層的關(guān)鍵業(yè)務(wù)數(shù)據(jù)的監(jiān)控。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。為此,本申請(qǐng)的一個(gè)目的在于提出一種監(jiān)控方法,該方法可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,從而能夠使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)的變更。本申請(qǐng)的另一個(gè)目的在于提出一種監(jiān)控裝置。為達(dá)到上述目的,本申請(qǐng)第一方面實(shí)施例提出的監(jiān)控方法,包括:獲取存儲(chǔ)有數(shù)據(jù)的源表,所述源表是采用預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源中抽取的;在緩存 中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),獲取所述緩存表;比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果;在所述比較結(jié)果是兩者不一致時(shí),向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,所述通知消息用于通知數(shù)據(jù)已發(fā)生變更。本申請(qǐng)第一方面實(shí)施例提出的監(jiān)控方法,通過(guò)比較源表和緩存表中的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,通過(guò)在數(shù)據(jù)發(fā)生變更時(shí)向數(shù)據(jù)使用方發(fā)送通知消息,可以使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)已發(fā)生變更。通過(guò)采用預(yù)設(shè)的定時(shí)周期抽取源表,可以提高穩(wěn)定性。為達(dá)到上述目的,本申請(qǐng)第二方面實(shí)施例提出的監(jiān)控系統(tǒng),包括執(zhí)行裝置,所述執(zhí)行裝置包括:第一獲取模塊,用于獲取存儲(chǔ)有數(shù)據(jù)的源表,所述源表是采用預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源中抽取的;第二獲取模塊,用于在緩存中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),獲取所述緩存表;比較模塊,用于比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果;通知模塊,用于在所述比較結(jié)果是兩者不一致時(shí),向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,所述通知消息用于通知數(shù)據(jù)已發(fā)生變更。本申請(qǐng)第二方面實(shí)施例提出的監(jiān)控裝置,通過(guò)比較源表和緩存表中的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,通過(guò)在數(shù)據(jù)發(fā)生變更時(shí)向數(shù)據(jù)使用方發(fā)送通知消息,可以使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)已發(fā)生變更。通過(guò)采用預(yù)設(shè)的定時(shí)周期抽取源表,可以提高穩(wěn)定性。本申請(qǐng)附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本申請(qǐng)的實(shí)踐了解到。附圖說(shuō)明本申請(qǐng)上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:圖1是本申請(qǐng)一實(shí)施例提出的監(jiān)控方法的流程示意圖;圖2是本申請(qǐng)實(shí)施例中監(jiān)控系統(tǒng)的實(shí)現(xiàn)示意圖;圖3是本申請(qǐng)另一實(shí)施例提出的監(jiān)控方法的流程示意圖;圖4是本申請(qǐng)另一實(shí)施例提出的監(jiān)控方法的流程示意圖;圖5是本申請(qǐng)另一實(shí)施例提出的監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖;圖6是本申請(qǐng)另一實(shí)施例提出的監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖;圖7是本申請(qǐng)另一實(shí)施例提出的服務(wù)器的結(jié)構(gòu)示意圖。具體實(shí)施方式下面詳細(xì)描述本申請(qǐng)的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本申請(qǐng),而不能理解為對(duì)本申請(qǐng)的限制。相反,本申請(qǐng)的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。圖1是本申請(qǐng)一實(shí)施例提出的監(jiān)控方法的流程示意圖。參見圖1,該方法包括:s11:獲取存儲(chǔ)有數(shù)據(jù)的源表,所述源表是采用預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源中抽取的。本實(shí)施例中,數(shù)據(jù)的監(jiān)控采用定時(shí)任務(wù)觸發(fā)機(jī)制,因此,可以預(yù)設(shè)定時(shí)周期,在達(dá)到定時(shí)周期時(shí)獲取源表,以便監(jiān)控?cái)?shù)據(jù)是否發(fā)生變更。一些實(shí)施例中,源表可以采用三層分發(fā)技術(shù)。具體的,參見圖2,監(jiān)控系 統(tǒng)分為三層,分別是分離層(splitor)、加載層(loader)和執(zhí)行層(executer)。其中,分離層用于對(duì)數(shù)據(jù)源進(jìn)行分塊,例如,將每個(gè)數(shù)據(jù)庫(kù)內(nèi)的源表分別作為一個(gè)數(shù)據(jù)塊,假設(shè)用n個(gè)數(shù)據(jù)庫(kù),則可以分為n個(gè)數(shù)據(jù)塊。加載層用于從分離層抽取源表,其中,加載層可以采用并行處理方式,例如,加載層可以并行抽取分別來(lái)自每個(gè)數(shù)據(jù)庫(kù)中的n個(gè)源表。進(jìn)一步的,采用定時(shí)任務(wù)觸發(fā)機(jī)制時(shí),加載層可以先判斷是否達(dá)到預(yù)設(shè)的定時(shí)周期,如果達(dá)到定時(shí)周期,則并行的從每個(gè)數(shù)據(jù)庫(kù)中獲取一個(gè)源表。如果沒(méi)有達(dá)到定時(shí)周期,則等待直至達(dá)到定時(shí)周期。具體的,可以采用precheck()方法,該方法中可以設(shè)置定時(shí)周期等參數(shù),以判斷是否達(dá)到預(yù)設(shè)的定時(shí)周期。進(jìn)一步的,設(shè)置precheck()方法中的參數(shù)時(shí),可以直接將設(shè)置的參數(shù)寫入內(nèi)存(該方式可以稱為drm方式)。以服務(wù)器為例,在設(shè)置服務(wù)器需要的參數(shù)時(shí),通常是服務(wù)器從外部存儲(chǔ)介質(zhì)等位置讀取參數(shù),之后寫入內(nèi)存,在需要修改參數(shù)時(shí),需要先修改存儲(chǔ)位置的參數(shù),再重啟服務(wù)器重新將參數(shù)寫入內(nèi)存。而本實(shí)施例中,采用直接將參數(shù)寫入內(nèi)存的方式,當(dāng)需要修改參數(shù)時(shí),也是將修改后的參數(shù)直接寫入內(nèi)存,從而提高效率,也不需要重啟服務(wù)器。加載層根據(jù)定時(shí)周期從分離層抽取源表后,可以將源表下發(fā)給執(zhí)行層。執(zhí)行層用于接收加載層發(fā)送的源表,并進(jìn)行邏輯處理,以監(jiān)控源表中的數(shù)據(jù)是否發(fā)生變更。具體的,執(zhí)行層的邏輯處理流程即如圖1(或之后的圖3、圖4)所示。進(jìn)一步的,在具體實(shí)施時(shí),對(duì)應(yīng)不同的業(yè)務(wù)需求,可以將執(zhí)行層的公共的處理邏輯封裝為一個(gè)類,該類可以稱為abstractdbtablemonitorexecutor,不同的業(yè)務(wù)需求下,在生成自身的處理邏輯時(shí),可以對(duì)應(yīng)自身需要監(jiān)控的源表 繼承這個(gè)類,從而可以僅做較少工作就可以實(shí)現(xiàn)對(duì)新增的源表的監(jiān)控。具體的,參見圖2,以三種源表的監(jiān)控為例,三種源表的處理邏輯分別用第一源表處理邏輯21、第二源表處理邏輯22和第三源表處理邏輯23表示,其中,第一源表處理邏輯可以具體是對(duì)余額寶商戶監(jiān)控(yebsaleinstmonitorexecutor)、第二源表處理邏輯可以具體是對(duì)余額寶系統(tǒng)參數(shù)監(jiān)控(yebsysparammonitorexecutor)、第三源表處理邏輯可以具體是對(duì)非工作日監(jiān)控(noworkdaymonitorexecutor)。這三種處理邏輯都是通過(guò)繼承公共處理邏輯(abstractdbtablemonitorexecutor)24得到的。公共處理邏輯(abstractdbtablemonitorexecutor)24可以是繼承用于數(shù)據(jù)抽取監(jiān)控的類(abstractmonitorexecutor)25得到的。另外,用于數(shù)據(jù)抽取監(jiān)控的類(abstractmonitorexecutor)25還可以與用于監(jiān)控處理的類(monitordataschedulehandler)26關(guān)聯(lián),用于監(jiān)控處理的類(monitordataschedulehandler)26用于生成分離層、加載層和執(zhí)行層。s12:在緩存中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),獲取所述緩存表。一些實(shí)施例中,參見圖3,執(zhí)行層接收到加載層發(fā)送的源表后,在s12之前還可以包括:s15:判斷緩存中是否已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表。其中,不同的數(shù)據(jù)表可以采用不同的表標(biāo)識(shí)進(jìn)行區(qū)分,假設(shè)當(dāng)前處理的一個(gè)源表的表標(biāo)識(shí)是第一標(biāo)識(shí),則如果緩存中已存儲(chǔ)表標(biāo)識(shí)是第一標(biāo)識(shí)的緩存表時(shí),則可以確定緩存中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表,否則未存儲(chǔ)。當(dāng)緩存中已存儲(chǔ)與源表對(duì)應(yīng)的緩存表后,可以獲取該緩存表。進(jìn)一步的,在將源表存儲(chǔ)到緩存中時(shí),可以記錄每個(gè)緩存表的更新時(shí)間, 以便在獲取緩存表時(shí),獲取更新時(shí)間最近的與源表對(duì)應(yīng)的緩存表。另一方面,如圖3所示,該方法還可以包括:s16:在緩存中未存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),將所述源表存儲(chǔ)到緩存中,以得到所述源表對(duì)應(yīng)的緩存表。例如,當(dāng)前處理的源表是第一源表,如果緩存中未存儲(chǔ)第一源表,則可以將第一源表存儲(chǔ)到緩存中,從而在后續(xù)流程中,假設(shè)后續(xù)流程再次處理第一源表時(shí),由于之前已經(jīng)將第一源表存儲(chǔ)到緩存中,因此可以在緩存中獲取到第一源表對(duì)應(yīng)的緩存表。s13:比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果。在獲取到源表和對(duì)應(yīng)的緩存表中,可以比較兩個(gè)表中的數(shù)據(jù)。在比較兩個(gè)表中的數(shù)據(jù)時(shí),可以采用逐條記錄的比較方式。其中,每個(gè)表由一條或多條記錄組成,分別比較每條記錄在兩個(gè)表中是否相同。其中,比較兩個(gè)表中的記錄可以具體包括:在源表和緩存表中存在匹配的記錄時(shí),分別從源表和緩存表中獲取匹配的兩條記錄,并一一比對(duì)兩條記錄中相應(yīng)的字段值,如果任一個(gè)字段值在源表和緩存表中不是對(duì)應(yīng)相同,則得到比較結(jié)果是兩者不一致;此時(shí),該記錄是被修改的。以源表為基準(zhǔn),如果源表中的記錄不在緩存表中,則得到比較結(jié)果是兩者不一致;此時(shí),該記錄是新增的。以緩存表為基準(zhǔn),如果緩存表中的記錄不在源表中,則得到比較結(jié)果是兩者不一致;此時(shí),該記錄是刪除的。其中,源表和緩存表中的每條記錄都包含記錄標(biāo)識(shí),以便根據(jù)該記錄標(biāo)識(shí)確定源表和緩存表中是否存在匹配的記錄。例如,源表中每條記錄的數(shù)據(jù)結(jié)構(gòu)可以如表1所示,緩存表中每條記錄的數(shù)據(jù)結(jié)構(gòu)可以如表2所示。表1字段名類型說(shuō)明備注idbigint主鍵自動(dòng)增長(zhǎng)param_keyvarchar參數(shù)鍵值param_valuevarchar參數(shù)值memovarchar注釋gmt_createdate創(chuàng)建時(shí)間gmt_modifydate修改時(shí)間表2其中,在源表中用“param_key”作為記錄標(biāo)識(shí),在緩存表中用“data_key”作為記錄標(biāo)識(shí),當(dāng)源表中記錄a的param_key與緩存表中記錄b的data_key相同時(shí),則表明記錄a和記錄b是源表和緩存表中匹配的兩條記錄。如果源表中記錄a的param_key不存在于緩存表的data_key中,則表明記錄a是新增的。如果緩存表中記錄b的data_key不存在于源表的param_key中,則表明記錄b是刪除的。進(jìn)一步的,當(dāng)源表和緩存表中存在匹配的兩條記錄時(shí),假設(shè)這兩條記錄分別用記錄a和記錄b表示,則可以一一比較需要比較的每個(gè)字段。其中,需要 比較的字段包括記錄a的全部字段以及從記錄b中提取的記錄a的原始內(nèi)容。其中,在將源表存儲(chǔ)到緩存中時(shí),可以是將源表的每條記錄的全部?jī)?nèi)容(如表1的全部6個(gè)字段的內(nèi)容)存儲(chǔ)在緩存表的每條記錄的“data_value”字段中,從而在比較源表中的記錄a和緩存表中的記錄b時(shí),可以先從記錄b的“data_value”字段中獲取記錄a的原始內(nèi)容,再與當(dāng)前的記錄a進(jìn)行字段的一一比較,以得到比較結(jié)果。進(jìn)一步的,在對(duì)記錄a的全部字段以及從記錄b中提取的記錄a的原始內(nèi)容進(jìn)行比較時(shí),可以是編寫代碼依次對(duì)每個(gè)字段進(jìn)行比較,或者,也可以采用java反射機(jī)制。java反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java反射機(jī)制。通過(guò)采用java反射機(jī)制,可以具有較好的兼容性,后續(xù)源表新增或者修改字段,代碼不需要進(jìn)行改造。s14:在所述比較結(jié)果是兩者不一致時(shí),向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,所述通知消息用于通知數(shù)據(jù)已發(fā)生變更。當(dāng)記錄是新增、刪除或記錄中的一個(gè)或一些字段改變后,都可以向數(shù)據(jù)使用方發(fā)送通知消息。數(shù)據(jù)使用方(如業(yè)務(wù)人員)接收到該通知消息后,可以獲知數(shù)據(jù)已發(fā)生變更,之后可以重新檢查數(shù)據(jù)、排除故障、優(yōu)化業(yè)務(wù)等后續(xù)相關(guān)處理。另一方面,當(dāng)源表和緩存表中的數(shù)據(jù)一致時(shí),可以結(jié)束流程。一些實(shí)施例中,參見圖4,該方法還可以包括:s17:獲取數(shù)據(jù)使用方的用戶信息。相應(yīng)的,可以根據(jù)用戶信息,向?qū)?yīng)的數(shù)據(jù)使用方發(fā)送通知消息。其中,用戶信息可以是預(yù)先配置的。進(jìn)一步的,在配置時(shí)可以采用上述的drm方式,將用戶信息直接寫入內(nèi)存。用戶信息例如包括:手機(jī)號(hào)、郵箱等。相應(yīng)的,發(fā)送通知消息可以包括:調(diào)用預(yù)設(shè)的能夠發(fā)送郵件的接口(如gotone接口),并通過(guò)所述接口,以郵件形式向所述郵箱號(hào)對(duì)應(yīng)的郵箱發(fā)送通知消息;和/或,通過(guò)預(yù)設(shè)的能夠發(fā)送短信的平臺(tái),以短信形式向所述手機(jī)號(hào)對(duì)應(yīng)的手機(jī)發(fā)送通知消息。上述的通知消息中可以具體包括發(fā)生變更的數(shù)據(jù)內(nèi)容。例如,執(zhí)行層在獲取比較結(jié)果是不一致時(shí),將源表和緩存表中的差異信息寫入監(jiān)控系統(tǒng)的監(jiān)控日志中,監(jiān)控系統(tǒng)根據(jù)監(jiān)控日志向用戶的手機(jī)號(hào)發(fā)送包含差異信息的通知消息。可以理解的是,當(dāng)源表為多個(gè)時(shí),執(zhí)行層在處理上述流程時(shí)可以采用并行方式。例如,并行的判斷第一源表、第二源表等源表內(nèi)的數(shù)據(jù)是否發(fā)生變更,并在發(fā)生變更時(shí)進(jìn)行通知。其中,針對(duì)每個(gè)源表的處理流程可以如圖1、圖3或圖4所示。本實(shí)施例中,通過(guò)比較源表和緩存表中的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,通過(guò)在數(shù)據(jù)發(fā)生變更時(shí)向數(shù)據(jù)使用方發(fā)送通知消息,可以使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)已發(fā)生變更。通過(guò)采用預(yù)設(shè)的定時(shí)周期抽取源表,可以提高穩(wěn)定性,例如,如果定時(shí)任務(wù)出錯(cuò)或者系統(tǒng)異常,可以定時(shí)重試。通過(guò)并發(fā)獲取源表及處理,可以并發(fā)對(duì)多個(gè)源表進(jìn)行處理,保證了高效性。圖5是本申請(qǐng)另一實(shí)施例提出的監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖。參見圖5,該系統(tǒng)包括:執(zhí)行裝置51,執(zhí)行裝置51包括:第一獲取模塊511、第二獲取模塊 512、比較模塊513和通知模塊514。第一獲取模塊511,用于獲取存儲(chǔ)有數(shù)據(jù)的源表,所述源表是采用預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源中抽取的;第二獲取模塊512,用于在緩存中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),獲取所述緩存表;比較模塊513,用于比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果;通知模塊514,用于在所述比較結(jié)果是兩者不一致時(shí),向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,所述通知消息用于通知數(shù)據(jù)已發(fā)生變更。一些實(shí)施例中,參見圖6,該系統(tǒng)還可以包括:加載裝置52,用于根據(jù)預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源抽取源表,并發(fā)送給執(zhí)行裝置51。相應(yīng)的,第一獲取模塊511具體用于接收加載裝置52發(fā)送的源表。一些實(shí)施例中,參見圖6,該系統(tǒng)還包括:分離裝置53,用于將數(shù)據(jù)源拆分為多個(gè)數(shù)據(jù)塊。相應(yīng)的,加載裝置52具體用于:根據(jù)預(yù)設(shè)的定時(shí)周期,并行抽取分離裝置53得到的每個(gè)數(shù)據(jù)塊中的源表。一些實(shí)施例中,參見圖6,執(zhí)行裝置51還包括:存儲(chǔ)模塊515,用于在緩存中未存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),將所述源表存儲(chǔ)到所述緩存中,以得到所述源表對(duì)應(yīng)的緩存表。可選的,所述比較模塊513具體用于:在源表和緩存表中存在匹配的記錄時(shí),分別從源表和緩存表中獲取匹配的兩條記錄,并一一比對(duì)兩條記錄中相應(yīng)的字段值,如果任一個(gè)字段值在源表和 緩存表中不是對(duì)應(yīng)相同,則得到比較結(jié)果是兩者不一致;以源表為基準(zhǔn),如果源表中的記錄不在緩存表中,則得到比較結(jié)果是兩者不一致;以緩存表為基準(zhǔn),如果緩存表中的記錄不在源表中,則得到比較結(jié)果是兩者不一致。一些實(shí)施例中,參見圖6,所述執(zhí)行裝置51還包括:第三獲取模塊516,用于獲取所述數(shù)據(jù)使用方的用戶信息;所述通知模塊513具體用于:在所述比較結(jié)果是兩者不一致時(shí),根據(jù)所述用戶信息,向?qū)?yīng)的數(shù)據(jù)使用方發(fā)送通知消息??蛇x的,所述用戶信息包括:郵箱號(hào)和/或手機(jī)號(hào),所述通知模塊513具體用于:調(diào)用預(yù)設(shè)的能夠發(fā)送郵件的接口,并通過(guò)所述接口,以郵件形式向所述郵箱號(hào)對(duì)應(yīng)的郵箱發(fā)送通知消息;和/或,通過(guò)預(yù)設(shè)的能夠發(fā)送短信的平臺(tái),以短信形式向所述手機(jī)號(hào)對(duì)應(yīng)的手機(jī)發(fā)送通知消息??蛇x的,所述用戶信息和/或定時(shí)周期是直接寫入內(nèi)存的??梢岳斫獾氖?,本實(shí)施例的系統(tǒng)與方法實(shí)施例是對(duì)應(yīng)的,具體內(nèi)容可以參見方法實(shí)施例中的相關(guān)描述,在此不再詳細(xì)說(shuō)明。本實(shí)施例中,通過(guò)比較源表和緩存表中的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,通過(guò)在數(shù)據(jù)發(fā)生變更時(shí)向數(shù)據(jù)使用方發(fā)送通知消息,可以使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)已發(fā)生變更。通過(guò)采用預(yù)設(shè)的定時(shí)周期抽取源表,可以提高穩(wěn)定性,例如,如果定時(shí)任務(wù)出錯(cuò)或者系統(tǒng)異常,可以定時(shí)重試。通過(guò)并發(fā)獲取源表及處理,可以并發(fā)對(duì)多個(gè)源表進(jìn)行處理,保證了高效性。圖7是本申請(qǐng)另一實(shí)施例提出的服務(wù)器的結(jié)構(gòu)示意圖。參見圖7,該服務(wù)器70包括:殼體71、處理器72、存儲(chǔ)器73、電路板74和電源電路75,其中,電路板74安置在殼體71圍成的空間內(nèi)部,處理器72和存儲(chǔ)器73設(shè)置在電路板74上;電源電路75,用于為服務(wù)器的各個(gè)電路或器件供電;存儲(chǔ)器73用于存儲(chǔ)可執(zhí)行程序代碼;處理器72通過(guò)讀取存儲(chǔ)器中存儲(chǔ)的可執(zhí)行程序代碼來(lái)運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,以用于執(zhí)行以下步驟:獲取存儲(chǔ)有數(shù)據(jù)的源表,所述源表是采用預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源中抽取的;在緩存中已存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),獲取所述緩存表;比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果;在所述比較結(jié)果是兩者不一致時(shí),向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,所述通知消息用于通知數(shù)據(jù)已發(fā)生變更??蛇x的,所述獲取存儲(chǔ)有數(shù)據(jù)的源表,包括:接收加載層發(fā)送的存儲(chǔ)有數(shù)據(jù)的源表,所述源表是所述加載層根據(jù)預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源抽取的??蛇x的,加載層根據(jù)預(yù)設(shè)的定時(shí)周期從數(shù)據(jù)源抽取源表,包括:加載層根據(jù)預(yù)設(shè)的定時(shí)周期,在分離層拆分得到的多個(gè)數(shù)據(jù)塊中,并行抽取每個(gè)數(shù)據(jù)塊中的源表。可選的,還包括:在緩存中未存儲(chǔ)與所述源表對(duì)應(yīng)的緩存表時(shí),將所述源表存儲(chǔ)到所述緩存中,以得到所述源表對(duì)應(yīng)的緩存表??蛇x的,所述比較所述源表中的數(shù)據(jù)和所述緩存表中的數(shù)據(jù),得到比較結(jié)果,包括:在源表和緩存表中存在匹配的記錄時(shí),分別從源表和緩存表中獲取匹配的兩條記錄,并一一比較需要比較的每個(gè)字段,如果任一個(gè)字段在源表和緩存表中不是對(duì)應(yīng)相同,則得到比較結(jié)果是兩者不一致;以源表為基準(zhǔn),如果源表中的記錄不在緩存表中,則得到比較結(jié)果是兩者不一致;以緩存表為基準(zhǔn),如果緩存表中的記錄不在源表中,則得到比較結(jié)果是兩者不一致。可選的,還包括:獲取所述數(shù)據(jù)使用方的用戶信息;所述向所述源表的數(shù)據(jù)使用方發(fā)送通知消息,包括:根據(jù)所述用戶信息,向?qū)?yīng)的數(shù)據(jù)使用方發(fā)送通知消息??蛇x的,所述用戶信息包括:郵箱號(hào)和/或手機(jī)號(hào),所述根據(jù)所述用戶信息,向?qū)?yīng)的數(shù)據(jù)使用方發(fā)送通知消息,包括:調(diào)用預(yù)設(shè)的能夠發(fā)送郵件的接口,并通過(guò)所述接口,以郵件形式向所述郵箱號(hào)對(duì)應(yīng)的郵箱發(fā)送通知消息;和/或,通過(guò)預(yù)設(shè)的能夠發(fā)送短信的平臺(tái),以短信形式向所述手機(jī)號(hào)對(duì)應(yīng)的手機(jī)發(fā)送通知消息??蛇x的,所述用戶信息是直接寫入內(nèi)存的??梢岳斫獾氖?,本實(shí)施例的內(nèi)容與方法實(shí)施例是對(duì)應(yīng)的,具體內(nèi)容可以參見方法實(shí)施例中的相關(guān)描述,在此不再詳細(xì)說(shuō)明。本實(shí)施例中,通過(guò)比較源表和緩存表中的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)存儲(chǔ)數(shù)據(jù)的監(jiān)控,通過(guò)在數(shù)據(jù)發(fā)生變更時(shí)向數(shù)據(jù)使用方發(fā)送通知消息,可以使得數(shù)據(jù)使用方及時(shí)獲知數(shù)據(jù)已發(fā)生變更。通過(guò)采用預(yù)設(shè)的定時(shí)周期抽取源表,可以提高穩(wěn) 定性,例如,如果定時(shí)任務(wù)出錯(cuò)或者系統(tǒng)異常,可以定時(shí)重試。通過(guò)并發(fā)獲取源表及處理,可以并發(fā)對(duì)多個(gè)源表進(jìn)行處理,保證了高效性。需要說(shuō)明的是,在本申請(qǐng)的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本申請(qǐng)的描述中,除非另有說(shuō)明,“多個(gè)”的含義是指至少兩個(gè)。流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請(qǐng)的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本申請(qǐng)的實(shí)施例所屬
技術(shù)領(lǐng)域:
:的技術(shù)人員所理解。應(yīng)當(dāng)理解,本申請(qǐng)的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場(chǎng)可編程門陣列(fpga)等。本
技術(shù)領(lǐng)域:
:的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(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ì)中。上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。盡管上面已經(jīng)示出和描述了本申請(qǐng)的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本申請(qǐng)的限制,本領(lǐng)域的普通技術(shù)人員在本申請(qǐng)的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12