有被推送則查詢第一服務(wù)器中的已緩存文件索引,檢測所要推送的文件是否緩存在第一服務(wù)器中,若有緩存則不執(zhí)行推送,若沒有緩存則將文件推送到第一服務(wù)器,避免了推送重復(fù)文件,降低網(wǎng)絡(luò)流量成本,且避免每次推送都用信令到對點(diǎn)查詢,解決了現(xiàn)有技術(shù)中造成的預(yù)推送重復(fù)文件的流量成本的浪費(fèi),或者需要消耗大量信令進(jìn)行查詢的技術(shù)問題,而且在節(jié)日高峰時(shí)段,無需開啟柔性措施,避免接收方需要回源產(chǎn)生的下載時(shí)延增加的問題,大大降低了接收方下載文件的時(shí)延。
[0100]為了便于更好地實(shí)施本發(fā)明實(shí)施例的上述方案,本發(fā)明還對應(yīng)提供了一種推送服務(wù)器,如圖5示出的本發(fā)明實(shí)施例提供的推送服務(wù)器的結(jié)構(gòu)示意圖,推送服務(wù)器50可以包括:指令接收模塊500、判斷模塊502、判斷處理模塊504、檢測模塊506和檢測處理模塊508,其中
[0101]指令接收模塊500用于接收到文件推送通知指令,所述文件推送通知指令用于指不將第一文件推送到第一服務(wù)器;
[0102]判斷模塊502用于根據(jù)所述文件推送通知指令和文件推送記錄判斷所述第一文件是否已被推送到所述第一服務(wù)器;所述文件推送記錄包括已完成推送的文件信息;
[0103]檢測模塊506用于當(dāng)判斷模塊502的判斷結(jié)果為否時(shí),查詢所述第一服務(wù)器中的已緩存文件索引,檢測所述第一文件是否存在所述第一服務(wù)器中;所述已緩存文件索引包括當(dāng)前緩存在所述第一服務(wù)器中的文件信息;
[0104]檢測處理模塊508用于當(dāng)檢測模塊506的檢測結(jié)果為是時(shí),則不執(zhí)行將所述第一文件推送到所述第一服務(wù)器。
[0105]具體地,本發(fā)明實(shí)施例中的推送服務(wù)器50還可以包括判斷處理模塊504用于當(dāng)判斷模塊502的判斷結(jié)果為是時(shí),不執(zhí)行將所述第一文件推送到所述第一服務(wù)器;
[0106]并且,檢測處理模塊508還可以用于當(dāng)檢測模塊506的檢測結(jié)果為否時(shí),則根據(jù)所述文件推送通知指令將所述第一文件推送到所述第一服務(wù)器。
[0107]再具體地,文件推送記錄為已推送文件索引,如圖6示出的本發(fā)明提供的推送服務(wù)器的另一實(shí)施例的結(jié)構(gòu)示意圖,推送服務(wù)器50包括指令接收模塊500、判斷模塊502、判斷處理模塊504、檢測模塊506和檢測處理模塊508外,還可以包括索引建立模塊5010,用于在判斷模塊502根據(jù)文件推送記錄判斷所述第一文件是否已被推送到所述第一服務(wù)器之前,建立所述已推送文件索引;
[0108]索引建立模塊5010可以包括:第一標(biāo)識(shí)生成單元50100和推送記錄單元50102,其中
[0109]第一標(biāo)識(shí)生成單元50100用于根據(jù)預(yù)設(shè)算法生成已完成推送的文件對應(yīng)的唯一標(biāo)識(shí);
[0110]推送記錄單元50102用于將所述已完成推送的文件對應(yīng)的唯一標(biāo)識(shí)以及推送的目的服務(wù)器記錄在所述已推送文件索引中;
[0111]判斷模塊502可以包括:第二標(biāo)識(shí)生成單元5020和查看判斷單元5022,其中
[0112]第二標(biāo)識(shí)生成單元5020用于根據(jù)所述預(yù)設(shè)算法生成所述第一文件對應(yīng)的唯一標(biāo)識(shí);
[0113]查看判斷單元5022用于當(dāng)查看到所述第一文件對應(yīng)的唯一標(biāo)識(shí)存在于所述已推送文件索引中,則判斷出所述第一文件已被推送到所述第一服務(wù)器;當(dāng)查看到所述第一文件對應(yīng)的唯一標(biāo)識(shí)不存在于所述已推送文件索引中,則判斷出所述第一文件沒有被推送到所述第一服務(wù)器。
[0114]可理解的是,第一標(biāo)識(shí)生成單元50100和第二標(biāo)識(shí)生成單元5020可以為同一個(gè)物理單元模塊,也可以為兩個(gè)單獨(dú)的物理單元模塊。
[0115]進(jìn)一步地,該已推送文件索引還包括所述已完成推送文件對應(yīng)的推送時(shí)間;如圖7示出的本發(fā)明提供的判斷模塊的結(jié)構(gòu)示意圖,判斷模塊502包括第二標(biāo)識(shí)生成單元5020和查看判斷單元5022外,還可以包括標(biāo)識(shí)查看單元5024、標(biāo)識(shí)查看處理單元5026、期限檢查單元5028和期限檢查處理單元50210,其中
[0116]標(biāo)識(shí)查看單元5024用于查看所述第一文件對應(yīng)的唯一標(biāo)識(shí)是否存在于所述已推送文件索引中;
[0117]標(biāo)識(shí)查看處理單元5026用于當(dāng)標(biāo)識(shí)查看單元5024的查看結(jié)果為否時(shí),則判斷出所述第一文件沒有被推送到所述第一服務(wù)器;
[0118]期限檢查單元5028用于當(dāng)標(biāo)識(shí)查看單元5024的查看結(jié)果為是時(shí),檢查所述第一文件對應(yīng)的推送時(shí)間是否超過預(yù)設(shè)的推送期限;
[0119]期限檢查處理單元50210用于當(dāng)期限檢查單元5028的檢查結(jié)果為是時(shí),則判斷出所述第一文件沒有被推送到所述第一服務(wù)器;當(dāng)期限檢查單元5028的檢查結(jié)果為否時(shí),則判斷出所述第一文件已被推送到所述第一服務(wù)器。
[0120]再進(jìn)一步地,本發(fā)明實(shí)施例中的指令接收模塊500具體可以用于接收第二服務(wù)器發(fā)送的文件推送通知指令,所述文件推送通知指令為所述第二服務(wù)器接收到客戶端上傳的第一文件后推送服務(wù)器發(fā)送的指令,用于指示將第一文件推送到第一服務(wù)器。
[0121]再進(jìn)一步地,如圖8示出的本發(fā)明提供的檢測模塊的結(jié)構(gòu)示意圖,檢測模塊506可以包括:查詢指令發(fā)送單元5060、查詢結(jié)果接收單元5062和信息檢測單元5064,其中
[0122]查詢指令發(fā)送單元5060用于向所述第一服務(wù)器發(fā)送查詢指令;所述查詢指令用于指示所述第一服務(wù)器查詢已緩存文件索引;
[0123]查詢結(jié)果接收單元5062用于接收所述第一服務(wù)器返回的查詢結(jié)果信息;所述查詢結(jié)果信息包括所述第一服務(wù)器根據(jù)所述查詢指令,查詢所述第一文件是否存在已緩存文件索引中;
[0124]信息檢測單元5064用于根據(jù)所述查詢結(jié)果信息檢測出所述第一文件是否存在所述第一服務(wù)器中。
[0125]可理解的是,推送服務(wù)器50中各模塊的功能可對應(yīng)參考上述各方法實(shí)施例中圖1至圖3任意實(shí)施例的具體實(shí)現(xiàn)方式,這里不再贅述。
[0126]請參閱圖9,圖9是本發(fā)明提供的另一實(shí)施例的推送服務(wù)器的結(jié)構(gòu)示意圖。其中,如圖9所示,該推送服務(wù)器90可以包括:至少一個(gè)處理器901,例如CPU,至少一個(gè)網(wǎng)絡(luò)接口903,存儲(chǔ)器904,至少一個(gè)通信總線902。其中,通信總線902用于實(shí)現(xiàn)這些組件之間的連接通信。存儲(chǔ)器904可以是高速RAM存儲(chǔ)器,也可以是非不穩(wěn)定的存儲(chǔ)器(non-volatilememory),例如至少一個(gè)磁盤存儲(chǔ)器。存儲(chǔ)器904可選的還可以是至少一個(gè)位于遠(yuǎn)離前述處理器901的存儲(chǔ)裝置。如圖9所示,作為一種計(jì)算機(jī)存儲(chǔ)介質(zhì)的存儲(chǔ)器904中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊以及文件預(yù)推送處理程序。
[0127]在圖9所示的推送服務(wù)器90中,網(wǎng)絡(luò)接口 1003主要用于連接消息發(fā)送端(即各就近服務(wù)器或客戶端)和消息接收端(即各就近服務(wù)器)并與之進(jìn)行數(shù)據(jù)通信;而處理器901可以用于調(diào)用存儲(chǔ)器904中存儲(chǔ)的信息發(fā)送處理程序,并執(zhí)行以下操作:
[0128]接收文件推送通知指令,所述文件推送通知指令用于指示將第一文件推送到第一服務(wù)器;
[0129]根據(jù)所述文件推送通知指令和文件推送記錄判斷所述第一文件是否已被推送到所述第一服務(wù)器;所述文件推送記錄包括已完成推送的文件信息;
[0130]當(dāng)判斷結(jié)果為否時(shí),查詢所述第一服務(wù)器中的已緩存文件索引,檢測所述第一文件是否存在所述第一服務(wù)器中;所述已緩存文件索引包括當(dāng)前緩存在所述第一服務(wù)器中的文件信息;
[0131]當(dāng)檢測結(jié)果為是時(shí),則不執(zhí)行將所述第一文件推送到所述第一服務(wù)器。
[0132]具體地,當(dāng)處理器901判斷出所述第一文件已被推送到所述第一服務(wù)器,不執(zhí)行將所述第一文件推送到所述第一服務(wù)器;
[0133]當(dāng)處理器901檢測出所述第一文件不存在所述第一服務(wù)器中,則根據(jù)所述文件推送通知指令將所述第一文件推送到所述第一服務(wù)器。
[0134]具體地,所述文件推送記錄為已推送文件索引,處理器901在所述根據(jù)文件推送記錄判斷所述第一文件是否已被推送到所述第一服務(wù)器之前,建立所述已推送文件索引,包括:
[0135]根據(jù)預(yù)設(shè)算法生成已完成推送的文件對應(yīng)的唯一標(biāo)識(shí);
[0136]將所述已完成推送的文件對應(yīng)的唯一標(biāo)識(shí)以及推送的目的服務(wù)器記錄在所述已推送文件索引中;
[0137]處理器901根據(jù)文件推送記錄判斷所述第一文件是否已被推送到所述第一服務(wù)器包括:
[0138]根據(jù)所述預(yù)設(shè)算法生成所述第一文件對應(yīng)的唯一標(biāo)識(shí);
[0139]當(dāng)查看到所述第一文件對應(yīng)的唯一標(biāo)識(shí)存在于所述已推送文件索引中,則判斷出所述第一文件已被推送到所述第一服務(wù)器;當(dāng)查看到所述第一文件對應(yīng)的唯一標(biāo)識(shí)不存在于所述已推送文件索引中,則判斷出所述第一文件沒有被推送到所述第一服務(wù)器。
[0140]進(jìn)一步地,所述已推送文件索引還包括所述已完成推送文件對應(yīng)的推送時(shí)間;處理器901根據(jù)所述預(yù)設(shè)算法生成所述第一文件對應(yīng)的唯一標(biāo)識(shí)之后,還包括:
[0141]查看所述第一文件對應(yīng)的唯一標(biāo)識(shí)是否存在于所述已推送文件索引中;
[0142]當(dāng)查看結(jié)果為是時(shí),檢查所述第一文件對應(yīng)的推送時(shí)間是否超過預(yù)設(shè)的推送期限;當(dāng)查看結(jié)果為否時(shí),則判斷出所述第一文件沒有被推送到所述第一服務(wù)器;