本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種新聞數(shù)據(jù)的更新方法及裝置。
背景技術(shù):
目前,從新聞數(shù)據(jù)源獲得的數(shù)據(jù)在經(jīng)過一系列的處理,如分類、敏感詞過濾后形成一條條新聞數(shù)據(jù),而這些新聞數(shù)據(jù)的屬性,如表征其熱度的權(quán)值屬性等會隨著時間而發(fā)生變化,例如,剛開始某條新聞為熱點新聞,其權(quán)值系數(shù)較高,但隨著時間的推移,其權(quán)值系數(shù)會不斷地衰減,所以需定期地對這些新聞數(shù)據(jù)進(jìn)行更新。
在定期地對新聞數(shù)據(jù)進(jìn)行更新時,可采用定時更新的方法,例如,新聞數(shù)據(jù)的更新周期為30分鐘,則可以在0分、30分、60分(每隔30分的時間點)對所有新聞數(shù)據(jù)進(jìn)行更新,然而,采用這種方法會使系統(tǒng)在更新時間點時負(fù)載過高,出現(xiàn)丟數(shù)據(jù)或數(shù)據(jù)延時等現(xiàn)象,而在兩次更新時間點中間系統(tǒng)負(fù)載較小,從而出現(xiàn)資源浪費現(xiàn)象;并且,若新的新聞數(shù)據(jù)在兩次更新時間點之間寫入,如25分寫入,則需要在55分時對該數(shù)據(jù)進(jìn)行更新,而該種定時更新的方式則顯然只能在30分或60分時對其進(jìn)行更新,由此可見,定時更新方式的更新時間精度較低,無法精準(zhǔn)地實現(xiàn)在新聞錄入特定時間后進(jìn)行更新的效果。
為解決上述問題,技術(shù)人員采用非定時更新的方法,即更新時每次獲取所有新聞數(shù)據(jù)的上次更新時間,將達(dá)到更新周期的新聞數(shù)據(jù)進(jìn)行更新。然而,發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),非定時更新的方式依然存在下述缺陷:在每次獲取的新聞數(shù)據(jù)的更新時間中有較多的新聞數(shù)據(jù)未達(dá)到更新周期,從而使得獲取了較多的無效數(shù)據(jù),從而增大了系統(tǒng)工作量,增加了系統(tǒng)負(fù)載,并降低了新聞數(shù)據(jù)的更新速度。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的新聞數(shù)據(jù)的更新方法及裝置。
根據(jù)本發(fā)明的一個方面,提供了一種新聞數(shù)據(jù)的更新方法,包括:將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間;獲取位于隊首的隊列元素中包含的更新時間,判斷所述更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件;當(dāng)判斷結(jié)果為是時,對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將所述位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
根據(jù)本發(fā)明的另一個方面,提供了一種新聞數(shù)據(jù)的更新裝置,包括:存儲模塊,適于將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間;獲取模塊,適于獲取位于隊首的隊列元素中包含的更新時間;第一判斷模塊,適于判斷所述更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件;更新模塊,適于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將所述位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
在本發(fā)明提供的一種新聞數(shù)據(jù)的更新方法及裝置中,通過將各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素,使各個新聞數(shù)據(jù)在時間上呈現(xiàn)順序排列,在更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間,從而保證了在同一個數(shù)據(jù)隊列中隊首元素至隊尾元素所包含的更新時間依次增加。由于同一個數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,則當(dāng)判斷了隊首元素未滿足更新條件時,則說明數(shù)據(jù)隊列中的所有新聞數(shù)據(jù)均不滿足更新條件,則不再獲取剩余的新聞數(shù)據(jù)的更新時間,從而避免了現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題,從而取得了降低系統(tǒng)工作量及系統(tǒng)負(fù)載,提高新聞數(shù)據(jù)的更新速度的有益效果。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實施例提供的一種新聞數(shù)據(jù)的更新方法的流程圖;
圖2示出了根據(jù)本發(fā)明另一個實施例提供的一種新聞數(shù)據(jù)的更新方法的流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例提供的一種新聞數(shù)據(jù)的更新裝置的結(jié)構(gòu)框圖;
圖4示出了根據(jù)本發(fā)明另一個實施例提供的一種新聞數(shù)據(jù)的更新裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明提供了一種新聞數(shù)據(jù)的更新方法及裝置,至少能夠解決現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題。
圖1示出了根據(jù)本發(fā)明一個實施例提供的一種新聞數(shù)據(jù)的更新方法的流程圖,如圖1所示,該方法包括:
步驟s110,將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間。
在對新聞數(shù)據(jù)進(jìn)行更新過程中,當(dāng)其更新周期相同時,可按照新聞數(shù)據(jù)被獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素。其中,每個隊列元素中包含有其對應(yīng)的新聞數(shù)據(jù)的更新時間,該更新時間具體表示該條新聞數(shù)據(jù)上次更新的時間點,在該條新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中時,其更新時間為其初次存儲至數(shù)據(jù)隊列的時間。
可選的,當(dāng)新聞數(shù)據(jù)的更新周期不相同時。例如,娛樂熱點新聞的熱度隨時間常常呈現(xiàn)指數(shù)下降,則需對新聞數(shù)據(jù)(包含新聞熱度的相關(guān)信息)進(jìn)行頻繁的更新;而對一些時政類新聞,如房產(chǎn)新聞、物價新聞等其更新周期相對較長。所以對于更新周期不同的新聞數(shù)據(jù),首先將新聞數(shù)據(jù)按更新周期進(jìn)行分類,將同一更新周期的新聞數(shù)據(jù)劃分為一類。并可將同一更新周期的新聞數(shù)據(jù)按次序依次存儲為數(shù)據(jù)隊列的各個隊列元素。
可選的,同一數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,但同一更新周期的新聞數(shù)據(jù)可以存儲于不同的數(shù)據(jù)隊列。例如,可將更新周期為10分鐘的新聞數(shù)據(jù)按照獲取的先后次序依次存儲至同一數(shù)據(jù)隊列,但當(dāng)更新周期為10分鐘的新聞數(shù)據(jù)過多時,考慮到數(shù)據(jù)隊列的存儲空間大小及新聞數(shù)據(jù)的更新效率,也可將更新周期為10分鐘的新聞數(shù)據(jù)存儲至多個數(shù)據(jù)隊列中,但在同一個數(shù)據(jù)隊列中,仍按照新聞數(shù)據(jù)獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素。
進(jìn)一步可選的,當(dāng)含有多個數(shù)據(jù)隊列時,可由多個線程來進(jìn)行維護(hù),多個線程可進(jìn)行并發(fā)處理,從而提高新聞數(shù)據(jù)的更新效率。
本實施例中將以一個數(shù)據(jù)隊列為例來闡明新聞數(shù)據(jù)的更新過程。
步驟s120,獲取位于隊首的隊列元素中包含的更新時間,判斷更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件,若是,則執(zhí)行步驟s130。
其中,預(yù)設(shè)的更新條件可根據(jù)新聞數(shù)據(jù)的更新周期來確定。例如,預(yù)設(shè)的更新條件可以為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于更新周期,若更新周期為5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)當(dāng)前時間為11分25秒時,更新時間與當(dāng)前時間之間的間隔為4分鐘25秒,則不滿足預(yù)設(shè)的更新條件;當(dāng)當(dāng)前時間為12分00秒時,更新時間與當(dāng)前時間之間的間隔為5分鐘,則滿足預(yù)設(shè)的更新條件。
當(dāng)隊首的隊列元素中包含的更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時執(zhí)行步驟s130。
步驟s130,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
若步驟s120判斷結(jié)果為是,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)需要更新,則對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。在對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)更新過后,將位于隊首的隊列元素從隊首中刪除,并將其重新添加至隊尾,并將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。在執(zhí)行完步驟s130后可進(jìn)一步執(zhí)行步驟s120。
舉例來說,若步驟s120中預(yù)設(shè)的更新條件為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)前時間為12分00秒,則滿足預(yù)設(shè)的更新條件,執(zhí)行步驟s130。對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,由于此時,該條新聞數(shù)據(jù)得到了更新,其距離下次更新的時間間隔要大于隊列中的其他新聞數(shù)據(jù),則將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間12分00秒,從而保證了數(shù)據(jù)隊列中從隊首至隊尾隊列元素包含的更新時間依次增加。
由此可見,本發(fā)明實施例提供的新聞數(shù)據(jù)的更新方法,通過將各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素,使各個新聞數(shù)據(jù)在時間上呈現(xiàn)順序排列,在更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間,從而保證了在同一個數(shù)據(jù)隊列中隊首元素至隊尾元素所包含的更新時間依次增加。由于同一個數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,則當(dāng)判斷了隊首元素未滿足更新條件時,則說明數(shù)據(jù)隊列中的所有新聞數(shù)據(jù)均不滿足更新條件,則不再獲取剩余的新聞數(shù)據(jù)的更新時間,從而避免了現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題,從而取得了降低系統(tǒng)工作量及系統(tǒng)負(fù)載,提高新聞數(shù)據(jù)的更新速度的有益效果。
圖2示出了根據(jù)本發(fā)明另一個實施例提供的一種新聞數(shù)據(jù)的更新方法的流程圖,如圖2所示,該方法包括:
步驟s210,將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的存儲時間和更新時間。
可選的,在對新聞數(shù)據(jù)更新過程中,當(dāng)獲取的新聞數(shù)據(jù)的更新周期不相同時。例如,娛樂熱點新聞的熱度隨時間常常呈現(xiàn)指數(shù)下降,則需對新聞數(shù)據(jù)(包含新聞熱度的相關(guān)信息)進(jìn)行頻繁的更新;而對一些時政類新聞,如房產(chǎn)新聞、物價新聞等其更新周期相對較長。所以對于更新周期不同的新聞數(shù)據(jù),首先將新聞數(shù)據(jù)按更新周期進(jìn)行分類,將同一更新周期的新聞數(shù)據(jù)劃分為一類,并可將同一更新周期的新聞數(shù)據(jù)按次序依次存儲為數(shù)據(jù)隊列的各個隊列元素。
可選的,同一數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,但同一更新周期的新聞數(shù)據(jù)可以存儲于同一數(shù)據(jù)隊列,也可以存儲于不同的數(shù)據(jù)隊列。例如,可將更新周期為10分鐘的新聞數(shù)據(jù)按照獲取的先后次序依次存儲至同一數(shù)據(jù)隊列,但當(dāng)更新周期為10分鐘的新聞數(shù)據(jù)過多時,考慮到數(shù)據(jù)隊列的存儲空間大小及新聞數(shù)據(jù)的更新效率,也可將更新周期為10分鐘的新聞數(shù)據(jù)存儲至多個數(shù)據(jù)隊列中,但在同一個數(shù)據(jù)隊列中,仍按照新聞數(shù)據(jù)獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素,
進(jìn)一步可選的,當(dāng)含有多個數(shù)據(jù)隊列時,可由多個線程來進(jìn)行維護(hù),多個線程可并發(fā)處理,從而提高新聞數(shù)據(jù)的更新效率。
本實施例中將以一個數(shù)據(jù)隊列為例來闡明新聞數(shù)據(jù)的更新過程。本領(lǐng)域技術(shù)人員能夠理解的是,實際情況中可能會有多個分別用于存儲不同更新周期的新聞數(shù)據(jù)的數(shù)據(jù)隊列。
在本步驟中,每當(dāng)獲取到新聞數(shù)據(jù)時,將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素,并將該新聞數(shù)據(jù)對應(yīng)的隊列元素添加到數(shù)據(jù)隊列的隊尾,其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的存儲時間和更新時間。存儲時間為新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中的時間,更新時間為新聞數(shù)據(jù)上次更新的時間,在新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中時,更新時間等于存儲時間。
具體的,將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的具體存儲方式有多種,例如:
存儲方式一:
將新聞數(shù)據(jù)的所有內(nèi)容,例如,新聞數(shù)據(jù)的具體內(nèi)容、展現(xiàn)邏輯、數(shù)據(jù)屬性(類別屬性、權(quán)值屬性)等存儲在數(shù)據(jù)隊列中。
存儲方式二:
將獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間,其中,存儲在預(yù)設(shè)的存儲空間的新聞數(shù)據(jù)文件包括新聞數(shù)據(jù)的具體內(nèi)容、展現(xiàn)邏輯以及新聞數(shù)據(jù)屬性等,其中新聞數(shù)據(jù)屬性包括新聞數(shù)據(jù)的權(quán)值屬性(例如,可以為表征新聞數(shù)據(jù)熱度的分值)、和/或類別屬性(如短報類、專題類;或娛樂類、財經(jīng)類等)。并且預(yù)設(shè)的存儲空間可以設(shè)置在系統(tǒng)內(nèi)存或系統(tǒng)磁盤中,本發(fā)明對該預(yù)設(shè)的存儲空間的具體位置不做限定。
在將獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間后,為存儲空間內(nèi)存儲的各個新聞數(shù)據(jù)設(shè)置對應(yīng)的索引文件。其中,索引文件的每個索引項中存儲有對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識。采用該新聞數(shù)據(jù)的存儲方式通過索引文件可以便于新聞數(shù)據(jù)的查找和管理。
并且,將各個新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識存儲為數(shù)據(jù)隊列的隊列元素。
本發(fā)明中將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的方法不限于上述兩種具體實施方法,例如,還可以將獲取到的新聞數(shù)據(jù)存儲在預(yù)設(shè)存儲空間,并將新聞數(shù)據(jù)的地址指針存儲為數(shù)據(jù)隊列的隊列元素。本發(fā)明對將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的具體方法不做限定。
步驟s220,獲取位于隊首的隊列元素中包含的存儲時間,判斷存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件,若是,則執(zhí)行步驟s230;若否,則執(zhí)行步驟s240。
步驟s220為一個可選的步驟,由于新聞數(shù)據(jù)具有一定的時效性,所以對于已經(jīng)過了時效期的新聞數(shù)據(jù)便不再對其進(jìn)行更新。具體地,應(yīng)獲取位于隊首的隊列元素中包含的存儲時間,判斷存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件。其中,預(yù)設(shè)的刪除條件可以為存儲時間與當(dāng)前時間之間的間隔大于或等于預(yù)設(shè)閾值,其中預(yù)設(shè)閾值表示新聞數(shù)據(jù)的有效期。例如,若新聞數(shù)據(jù)的有效期為一周,即在一周過后將不再對新聞數(shù)據(jù)進(jìn)行更新,則該預(yù)設(shè)閾值可以為一周,當(dāng)存儲時間與當(dāng)前時間之間的間隔大于或等于一周,則執(zhí)行步驟s230;若當(dāng)存儲時間與當(dāng)前時間之間的間隔小于一周,則執(zhí)行步驟s240。
步驟s230,刪除位于隊首的隊列元素。
若步驟s220中判斷結(jié)果為是,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)已經(jīng)過了時效期,則刪除位于隊首的隊列元素,并進(jìn)一步執(zhí)行步驟s220。其中,刪除操作執(zhí)行完畢后,刪除前排在隊列中第二位的隊列元素成為位于隊首的隊列元素,其他隊列元素的位置也相應(yīng)前移。
可選的,若步驟s210中采用存儲方式二將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素,則本步驟具體為:獲取隊首的隊列元素包含的數(shù)據(jù)標(biāo)識,并根據(jù)該數(shù)據(jù)標(biāo)識在索引文件中查找到相應(yīng)的索引項對應(yīng)的新聞數(shù)據(jù),刪除該新聞數(shù)據(jù)及相應(yīng)的索引項。
步驟s240,獲取位于隊首的隊列元素中包含的更新時間,判斷更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件,若是,則執(zhí)行步驟s250;否則,執(zhí)行步驟s260。
可選的,可每隔預(yù)設(shè)的第一時間間隔獲取位于隊首的隊列元素中包含的更新時間。例如,預(yù)設(shè)的第一時間間隔為10秒,則每隔10秒獲取位于隊首的隊列元素中包含的更新時間。
可選的,也可以每隔時間間隔t獲取位于隊首的隊列元素中包含的更新時間,其中時間間隔t=(tn-t1)/n,t1數(shù)據(jù)隊列中位于隊首的隊列元素包含的更新時間,tn為數(shù)據(jù)隊列中位于隊尾的隊列元素包含的更新時間,n為當(dāng)前數(shù)據(jù)隊列的元素總個數(shù)。
其中,預(yù)設(shè)的更新條件可根據(jù)新聞數(shù)據(jù)的更新周期來確定。例如,預(yù)設(shè)的更新條件可以為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于更新周期,若更新周期為5分鐘,獲取到的隊首的隊列元素中包含的更新時間為2分30秒,當(dāng)當(dāng)前時間為7分25秒時,更新時間與當(dāng)前時間之間的間隔為4分鐘55秒,則不滿足預(yù)設(shè)的更新條件;當(dāng)當(dāng)前時間為7分31秒時,更新時間與當(dāng)前時間之間的間隔大于5分鐘,則滿足預(yù)設(shè)的更新條件。
當(dāng)隊首的隊列元素中包含的更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,則執(zhí)行步驟s250;當(dāng)隊首的隊列元素中包含的更新時間與當(dāng)前時間之間的間隔不滿足預(yù)設(shè)的更新條件時,則執(zhí)行步驟s260。
步驟s250,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
若步驟s240判斷結(jié)果為是,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)需要更新,則對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。其中,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新可以為對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)的至少一個數(shù)據(jù)屬性進(jìn)行更新,其中,數(shù)據(jù)屬性包括:類別屬性、和/或權(quán)值屬性。例如,權(quán)值屬性可以為與新聞熱度相關(guān)的分值,該權(quán)值屬性的大小隨著時間的變化而發(fā)生變化,在步驟s240判斷的滿足預(yù)設(shè)的更新條件后,則可將該權(quán)值屬性進(jìn)行更新;又例如,某一新聞數(shù)據(jù)開始的類別屬性為快報類型,但隨著新聞事件的不斷發(fā)展,其類別屬性也演變?yōu)閷n}類型,所以在步驟s240判斷滿足預(yù)設(shè)的更新條件后,也可將該新聞數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行更新。可選的,也可對新聞數(shù)據(jù)的具體內(nèi)容或展現(xiàn)邏輯等進(jìn)行更新。
在對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)更新過后,將其從隊列隊首中刪除,并將其重新添加至隊尾,并將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。在執(zhí)行完本步驟后可進(jìn)一步執(zhí)行步驟s220。其中,位于隊首的隊列元素被刪除后,刪除前排在隊列中第二位的隊列元素成為位于隊首的隊列元素,其他隊列元素的位置也相應(yīng)前移。
可選的,當(dāng)步驟s210中采用存儲方式二,則本步驟具體為:根據(jù)位于隊首的隊列元素中包含的數(shù)據(jù)標(biāo)識,從索引文件中查詢與該隊列元素中包含的新聞數(shù)據(jù)對應(yīng)的索引項,根據(jù)查詢到的索引項對存儲空間內(nèi)相應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。
舉例來說,若步驟s240中預(yù)設(shè)的更新條件為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)前時間為12分00秒,則滿足預(yù)設(shè)的更新條件,執(zhí)行步驟s250。對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,由于此時,該條新聞數(shù)據(jù)得到了更新,其距離下次更新的時間間隔要大于隊列中的其他新聞數(shù)據(jù),則將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間12分00秒,從而保證了數(shù)據(jù)隊列中從隊首至隊尾隊列元素包含的更新時間依次增加。
步驟s260,等待預(yù)設(shè)時間。
若步驟s240判斷結(jié)果為否,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)未達(dá)到更新周期,則可等待預(yù)設(shè)時間,再執(zhí)行步驟s240。
具體地,可計算位于隊首的隊列元素包含的更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值,其中,預(yù)設(shè)的更新間隔可以為新聞數(shù)據(jù)的更新周期,并根據(jù)該差值確定預(yù)設(shè)時間。例如,位于隊首的隊列元素包含的更新時間為12分00秒,更新周期為10分鐘,若當(dāng)前時間為21分30秒,則位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)未滿足更新條件,且位于隊首的隊列元素包含的更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值為30秒,則該預(yù)設(shè)時間可以為30秒,即等待30秒再執(zhí)行步驟s240。
或者,也可根據(jù)預(yù)設(shè)的第二時間間隔來確定預(yù)設(shè)時間。例如,預(yù)設(shè)的第二時間間隔為1秒,則預(yù)設(shè)時間可以為1秒,若步驟s240判斷結(jié)果為否,則等待1秒后重新執(zhí)行步驟s240。
由此可見,本發(fā)明實施例提供的新聞數(shù)據(jù)的更新方法,通過將各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素,使各個新聞數(shù)據(jù)在時間上呈現(xiàn)順序排列,在更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間,從而保證了在同一個數(shù)據(jù)隊列中隊首元素至隊尾元素所包含的更新時間依次增加。由于同一個數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,則當(dāng)判斷了隊首元素未滿足更新條件時,則說明數(shù)據(jù)隊列中的所有新聞數(shù)據(jù)均不滿足更新條件,則不再獲取剩余的新聞數(shù)據(jù)的更新時間,從而避免了現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題,從而取得了降低系統(tǒng)工作量及系統(tǒng)負(fù)載,提高新聞數(shù)據(jù)的更新速度的有益效果。另外,通過判斷存儲時間與當(dāng)前時間之間的間隔可以將已經(jīng)過了時效期的新聞數(shù)據(jù)從數(shù)據(jù)隊列中刪除,從而減少了數(shù)據(jù)隊列中的無效數(shù)據(jù),進(jìn)一步加快了新聞數(shù)據(jù)的更新速度。
圖3示出了根據(jù)本發(fā)明一個實施例提供的一種新聞數(shù)據(jù)的更新裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置包括:存儲模塊31、獲取模塊32、第一判斷模塊33、以及更新模塊34。
存儲模塊31適于將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間。
在對新聞數(shù)據(jù)進(jìn)行更新過程中,當(dāng)其更新周期相同時,可按照新聞數(shù)據(jù)被獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素。其中,每個隊列元素中包含有其對應(yīng)的新聞數(shù)據(jù)的更新時間,該更新時間具體表示該條新聞數(shù)據(jù)上次更新的時間點,在該條新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中時,其更新時間為其初次存儲至數(shù)據(jù)隊列的時間。
可選的,當(dāng)新聞數(shù)據(jù)的更新周期不相同時。例如,娛樂熱點新聞的熱度隨時間常常呈現(xiàn)指數(shù)下降,則需對新聞數(shù)據(jù)(包含新聞熱度的相關(guān)信息)進(jìn)行頻繁的更新;而對一些時政類新聞,如房產(chǎn)新聞、物價新聞等其更新周期相對較長。所以對于更新周期不同的新聞數(shù)據(jù),首先將新聞數(shù)據(jù)按更新周期進(jìn)行分類,將同一更新周期的新聞數(shù)據(jù)劃分為一類。并可將同一更新周期的新聞數(shù)據(jù)按次序依次存儲為數(shù)據(jù)隊列的各個隊列元素。
可選的,同一數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,但同一更新周期的新聞數(shù)據(jù)可以存儲于不同的數(shù)據(jù)隊列。例如,可將更新周期為10分鐘的新聞數(shù)據(jù)按照獲取的先后次序依次存儲至同一數(shù)據(jù)隊列,但當(dāng)更新周期為10分鐘的新聞數(shù)據(jù)過多時,考慮到數(shù)據(jù)隊列的存儲空間大小及新聞數(shù)據(jù)的更新效率,也可將更新周期為10分鐘的新聞數(shù)據(jù)存儲至多個數(shù)據(jù)隊列中,但在同一個數(shù)據(jù)隊列中,仍按照新聞數(shù)據(jù)獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素。
進(jìn)一步可選的,當(dāng)含有多個數(shù)據(jù)隊列時,可由多個線程來進(jìn)行維護(hù),多個線程可進(jìn)行并發(fā)處理,從而提高新聞數(shù)據(jù)的更新效率。
本實施例中將以一個數(shù)據(jù)隊列為例來闡明新聞數(shù)據(jù)的更新過程。
獲取模塊32適于獲取位于隊首的隊列元素中包含的更新時間。
隊列元素中包含新聞數(shù)據(jù)的更新時間,通過獲取模塊32可以獲取位于隊首的隊列元素中包含的存儲時間。
第一判斷模塊33適于判斷更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件。
其中,預(yù)設(shè)的更新條件可根據(jù)新聞數(shù)據(jù)的更新周期來確定。例如,預(yù)設(shè)的更新條件可以為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于更新周期,若更新周期為5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)當(dāng)前時間為11分25秒時,更新時間與當(dāng)前時間之間的間隔為4分鐘25秒,則不滿足預(yù)設(shè)的更新條件;當(dāng)當(dāng)前時間為12分00秒時,更新時間與當(dāng)前時間之間的間隔為5分鐘,則滿足預(yù)設(shè)的更新條件。
更新模塊34適于當(dāng)?shù)谝慌袛嗄K33判斷結(jié)果為是時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
若第一判斷模塊33判斷結(jié)果為是,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)需要更新,則對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。在對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)更新過后,將位于隊首的隊列元素從隊首中刪除,并將其重新添加至隊尾,并將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。在執(zhí)行完本模塊后可進(jìn)一步執(zhí)行獲取模塊32及第一判斷模塊33。
舉例來說,若第一判斷模塊33中預(yù)設(shè)的更新條件為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)前時間為12分00秒,則滿足預(yù)設(shè)的更新條件,執(zhí)行本模塊。對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,由于此時,該條新聞數(shù)據(jù)得到了更新,其距離下次更新的時間間隔要大于隊列中的其他新聞數(shù)據(jù),則將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間12分00秒,從而保證了數(shù)據(jù)隊列中從隊首至隊尾隊列元素包含的更新時間依次增加。
由此可見,本發(fā)明實施例提供的新聞數(shù)據(jù)的更新裝置,通過存儲模塊將各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素,使各個新聞數(shù)據(jù)在時間上呈現(xiàn)順序排列,在更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間,從而保證了在同一個數(shù)據(jù)隊列中隊首元素至隊尾元素所包含的更新時間依次增加。由于同一個數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,則當(dāng)判斷了隊首元素未滿足更新條件時,則說明數(shù)據(jù)隊列中的所有新聞數(shù)據(jù)均不滿足更新條件,則不再獲取剩余的新聞數(shù)據(jù)的更新時間,從而避免了現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題,從而取得了降低系統(tǒng)工作量及系統(tǒng)負(fù)載,提高新聞數(shù)據(jù)的更新速度的有益效果。
圖4示出了根據(jù)本發(fā)明另一個實施例提供的一種新聞數(shù)據(jù)的更新裝置的結(jié)構(gòu)框圖,如圖4所示,該裝置包括:存儲模塊41、獲取模塊42、第一判斷模塊43、更新模塊44、休眠模塊45、索引模塊46、以及第二判斷模塊47。
存儲模塊41適于將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的存儲時間和更新時間。
可選的,在對新聞數(shù)據(jù)更新過程中,當(dāng)獲取的新聞數(shù)據(jù)的更新周期不相同時。例如,娛樂熱點新聞的熱度隨時間常常呈現(xiàn)指數(shù)下降,則需對新聞數(shù)據(jù)(包含新聞熱度的相關(guān)信息)進(jìn)行頻繁的更新;而對一些時政類新聞,如房產(chǎn)新聞、物價新聞等其更新周期相對較長。所以對于更新周期不同的新聞數(shù)據(jù),首先將新聞數(shù)據(jù)按更新周期進(jìn)行分類,將同一更新周期的新聞數(shù)據(jù)劃分為一類,并可將同一更新周期的新聞數(shù)據(jù)按次序依次存儲為數(shù)據(jù)隊列的各個隊列元素。
可選的,同一數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,但同一更新周期的新聞數(shù)據(jù)可以存儲于同一數(shù)據(jù)隊列,也可以存儲于不同的數(shù)據(jù)隊列。例如,可將更新周期為10分鐘的新聞數(shù)據(jù)按照獲取的先后次序依次存儲至同一數(shù)據(jù)隊列,但當(dāng)更新周期為10分鐘的新聞數(shù)據(jù)過多時,考慮到數(shù)據(jù)隊列的存儲空間大小及新聞數(shù)據(jù)的更新效率,也可將更新周期為10分鐘的新聞數(shù)據(jù)存儲至多個數(shù)據(jù)隊列中,但在同一個數(shù)據(jù)隊列中,仍按照新聞數(shù)據(jù)獲取的先后次序依次將其存儲為數(shù)據(jù)隊列的各個隊列元素,
進(jìn)一步可選的,當(dāng)含有多個數(shù)據(jù)隊列時,可由多個線程來進(jìn)行維護(hù),多個線程可并發(fā)處理,從而提高新聞數(shù)據(jù)的更新效率。
本實施例中將以一個數(shù)據(jù)隊列為例來闡明新聞數(shù)據(jù)的更新過程。本領(lǐng)域技術(shù)人員能夠理解的是,實際情況中可能會有多個分別用于存儲不同更新周期的新聞數(shù)據(jù)的數(shù)據(jù)隊列。
每當(dāng)獲取到新聞數(shù)據(jù)時,將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素,并將該新聞數(shù)據(jù)對應(yīng)的隊列元素添加到數(shù)據(jù)隊列的隊尾,其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的存儲時間和更新時間。存儲時間為新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中的時間,更新時間為新聞數(shù)據(jù)上次更新的時間,在新聞數(shù)據(jù)初次存儲至數(shù)據(jù)隊列中時,更新時間等于存儲時間。
具體的,將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的具體存儲方式有多種,例如:
將新聞數(shù)據(jù)的所有內(nèi)容,例如,新聞數(shù)據(jù)的具體內(nèi)容、展現(xiàn)邏輯、數(shù)據(jù)屬性(類別屬性、權(quán)值屬性)等存儲在數(shù)據(jù)隊列中。
或者,利用索引模塊46將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素。
其中,索引模塊46適于將獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間,并為存儲空間內(nèi)存儲的各個新聞數(shù)據(jù)設(shè)置對應(yīng)的索引文件,該索引文件的每個索引項中存儲有對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識。
索引模塊46為可選模塊,具體地,將獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間,其中,存儲在預(yù)設(shè)的存儲空間的新聞數(shù)據(jù)文件包括新聞數(shù)據(jù)的具體內(nèi)容、展現(xiàn)邏輯以及新聞數(shù)據(jù)屬性等,其中新聞數(shù)據(jù)屬性包括新聞數(shù)據(jù)的權(quán)值屬性(例如,可以為表征新聞數(shù)據(jù)熱度的分值)、和/或類別屬性(如短報類、專題類;或娛樂類、財經(jīng)類等)。并且預(yù)設(shè)的存儲空間可以設(shè)置在系統(tǒng)內(nèi)存或系統(tǒng)磁盤中,本發(fā)明對該預(yù)設(shè)的存儲空間的具體位置不做限定。
在將獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間后,為存儲空間內(nèi)存儲的各個新聞數(shù)據(jù)設(shè)置對應(yīng)的索引文件。其中,索引文件的每個索引項中存儲有對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識。采用該新聞數(shù)據(jù)的存儲方式通過索引文件可以便于新聞數(shù)據(jù)的查找和管理。并且,將各個新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識存儲為數(shù)據(jù)隊列的隊列元素。
本發(fā)明中將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的方法不限于上述兩種具體實施方法,例如,還可以將獲取到的新聞數(shù)據(jù)存儲在預(yù)設(shè)存儲空間,并將新聞數(shù)據(jù)的地址指針存儲為數(shù)據(jù)隊列的隊列元素。本發(fā)明對將獲取到的新聞數(shù)據(jù)存儲為數(shù)據(jù)隊列的隊列元素的具體方法不做限定。
獲取模塊42適于在第一判斷模塊43之前,獲取位于隊首的隊列元素中包含的存儲時間。
隊列元素中包含新聞數(shù)據(jù)的存儲時間,通過獲取模塊42可以獲取位于隊首的隊列元素中包含的存儲時間。
第二判斷模塊47適于判斷存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件,若判斷結(jié)果為是,從隊首刪除該隊列元素。
本模塊為一個可選的模塊,由于新聞數(shù)據(jù)具有一定的時效性,所以對于已經(jīng)過了時效期的新聞數(shù)據(jù)便不再對其進(jìn)行更新。具體地,應(yīng)獲取位于隊首的隊列元素中包含的存儲時間,判斷存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件。其中,預(yù)設(shè)的刪除條件可以為存儲時間與當(dāng)前時間之間的間隔大于或等于預(yù)設(shè)閾值,其中預(yù)設(shè)閾值表示新聞數(shù)據(jù)的有效期。例如,若新聞數(shù)據(jù)的有效期為一周,即在一周過后將不再對新聞數(shù)據(jù)進(jìn)行更新,則該預(yù)設(shè)閾值可以為一周,當(dāng)存儲時間與當(dāng)前時間之間的間隔大于或等于一周,則刪除位于隊首的隊列元素。其中,刪除操作執(zhí)行完畢后,刪除前排在隊列中第二位的隊列元素成為位于隊首的隊列元素,其他隊列元素的位置也相應(yīng)前移??蛇x的,若本裝置中包含索引模塊46,則本模塊可進(jìn)一步獲取隊首的隊列元素包含的數(shù)據(jù)標(biāo)識,并根據(jù)該數(shù)據(jù)標(biāo)識在索引文件中查找到相應(yīng)的索引項對應(yīng)的新聞數(shù)據(jù),刪除該新聞數(shù)據(jù)及相應(yīng)的索引項。
獲取模塊42適于獲取位于隊首的隊列元素中包含的更新時間。
隊列元素中包含新聞數(shù)據(jù)的更新時間,通過獲取模塊42可以獲取位于隊首的隊列元素中包含的更新時間。
第一判斷模塊43適于判斷更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件,
可選的,可每隔預(yù)設(shè)的第一時間間隔獲取位于隊首的隊列元素中包含的更新時間。例如,預(yù)設(shè)的第一時間間隔為10秒,則每隔10秒獲取位于隊首的隊列元素中包含的更新時間。
可選的,也可以每隔時間間隔t獲取位于隊首的隊列元素中包含的更新時間,其中時間間隔t=(tn-t1)/n,t1數(shù)據(jù)隊列中位于隊首的隊列元素包含的更新時間,tn為數(shù)據(jù)隊列中位于隊尾的隊列元素包含的更新時間,n為當(dāng)前數(shù)據(jù)隊列的元素總個數(shù)。
其中,預(yù)設(shè)的更新條件可根據(jù)新聞數(shù)據(jù)的更新周期來確定。例如,預(yù)設(shè)的更新條件可以為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于更新周期,若更新周期為5分鐘,獲取到的隊首的隊列元素中包含的更新時間為2分30秒,當(dāng)當(dāng)前時間為7分25秒時,更新時間與當(dāng)前時間之間的間隔為4分鐘55秒,則不滿足預(yù)設(shè)的更新條件;當(dāng)當(dāng)前時間為7分31秒時,更新時間與當(dāng)前時間之間的間隔大于5分鐘,則滿足預(yù)設(shè)的更新條件。
更新模塊44適于當(dāng)?shù)谝慌袛嗄K43判斷結(jié)果為是時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
若第一判斷模塊43判斷結(jié)果為是,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)需要更新,則對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。
更新模塊44進(jìn)一步適于對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)的至少一個數(shù)據(jù)屬性進(jìn)行更新;其中,數(shù)據(jù)屬性包括:類別屬性、和/或權(quán)值屬性。
其中,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新可以為對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)的至少一個數(shù)據(jù)屬性進(jìn)行更新,其中,數(shù)據(jù)屬性包括:類別屬性、和/或權(quán)值屬性。例如,權(quán)值屬性可以為與新聞熱度相關(guān)的分值,該權(quán)值屬性的大小隨著時間的變化而發(fā)生變化,在第一判斷模塊43判斷的滿足預(yù)設(shè)的更新條件后,則可將該權(quán)值屬性進(jìn)行更新;又例如,某一新聞數(shù)據(jù)開始的類別屬性為快報類型,但隨著新聞事件的不斷發(fā)展,其類別屬性也演變?yōu)閷n}類型,所以在第一判斷模塊43判斷滿足預(yù)設(shè)的更新條件后,也可將該新聞數(shù)據(jù)的數(shù)據(jù)類型進(jìn)行更新??蛇x的,也可對新聞數(shù)據(jù)的具體內(nèi)容或展現(xiàn)邏輯等進(jìn)行更新。
在對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)更新過后,將其從隊列隊首中刪除,并將其重新添加至隊尾,并將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。其中,位于隊首的隊列元素被刪除后,刪除前排在隊列中第二位的隊列元素成為位于隊首的隊列元素,其他隊列元素的位置也相應(yīng)前移。
若本裝置包含索引模塊46,則更新模塊44進(jìn)一步適于根據(jù)位于隊首的隊列元素中包含的數(shù)據(jù)標(biāo)識,從索引文件中查詢與該隊列元素中包含的新聞數(shù)據(jù)對應(yīng)的索引項,根據(jù)查詢到的索引項對存儲空間內(nèi)相應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。
舉例來說,若第一判斷模塊43中預(yù)設(shè)的更新條件為更新時間與當(dāng)前時間之間的間隔應(yīng)大于或等于5分鐘,獲取到的隊首的隊列元素中包含的更新時間為7分00秒,當(dāng)前時間為12分00秒,則滿足預(yù)設(shè)的更新條件,則執(zhí)行本模塊。對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,由于此時,該條新聞數(shù)據(jù)得到了更新,其距離下次更新的時間間隔要大于隊列中的其他新聞數(shù)據(jù),則將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間12分00秒,從而保證了數(shù)據(jù)隊列中從隊首至隊尾隊列元素包含的更新時間依次增加。
休眠模塊45適于當(dāng)?shù)谝慌袛嗄K43判斷結(jié)果為否時,等待預(yù)設(shè)時間。
若第一判斷模塊43判斷結(jié)果為否,則說明位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)未達(dá)到更新周期,則可等待預(yù)設(shè)時間,再執(zhí)行第一判斷模塊43。
休眠模塊45休眠模塊進(jìn)一步適于:計算更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值,根據(jù)差值確定所述預(yù)設(shè)時間;或者,根據(jù)預(yù)設(shè)的第二時間間隔確定所述預(yù)設(shè)時間。
具體地,可計算位于隊首的隊列元素包含的更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值,其中,預(yù)設(shè)的更新間隔可以為新聞數(shù)據(jù)的更新周期,并根據(jù)該差值確定預(yù)設(shè)時間。例如,位于隊首的隊列元素包含的更新時間為12分00秒,更新周期為10分鐘,若當(dāng)前時間為21分30秒,則位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)未滿足更新條件,且位于隊首的隊列元素包含的更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值為30秒,則該預(yù)設(shè)時間可以為30秒,即等待30秒再執(zhí)行第一判斷模塊43。
或者,也可根據(jù)預(yù)設(shè)的第二時間間隔來確定預(yù)設(shè)時間。例如,預(yù)設(shè)的第二時間間隔為1秒,則預(yù)設(shè)時間可以為1秒,若第一判斷模塊43判斷結(jié)果為否,則等待1秒后重新執(zhí)行第一判斷模塊43。
由此可見,本發(fā)明實施例提供的新聞數(shù)據(jù)的更新裝置,通過存儲模塊將各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素,使各個新聞數(shù)據(jù)在時間上呈現(xiàn)順序排列,在更新時間與當(dāng)前時間之間的間隔滿足預(yù)設(shè)的更新條件時,對位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間,從而保證了在同一個數(shù)據(jù)隊列中隊首元素至隊尾元素所包含的更新時間依次增加。由于同一個數(shù)據(jù)隊列中的新聞數(shù)據(jù)的更新周期相同,則當(dāng)判斷了隊首元素未滿足更新條件時,則說明數(shù)據(jù)隊列中的所有新聞數(shù)據(jù)均不滿足更新條件,則不再獲取剩余的新聞數(shù)據(jù)的更新時間,從而避免了現(xiàn)有技術(shù)中每次在對新聞數(shù)據(jù)進(jìn)行更新時需獲取所有新聞數(shù)據(jù)的更新時間而導(dǎo)致獲取了大量無效數(shù)據(jù)的問題,從而取得了降低系統(tǒng)工作量及系統(tǒng)負(fù)載,提高新聞數(shù)據(jù)的更新速度的有益效果。另外,通過判斷存儲時間與當(dāng)前時間之間的間隔可以將已經(jīng)過了時效期的新聞數(shù)據(jù)從數(shù)據(jù)隊列中刪除,從而減少了數(shù)據(jù)隊列中的無效數(shù)據(jù),進(jìn)一步加快了新聞數(shù)據(jù)的更新速度。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(dsp)來實現(xiàn)根據(jù)本發(fā)明實施例的基于集群的數(shù)據(jù)存儲空間裝置模塊中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了:a1.一種新聞數(shù)據(jù)的更新方法,包括:
將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間;
獲取位于隊首的隊列元素中包含的更新時間,判斷所述更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件;
當(dāng)判斷結(jié)果為是時,對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將所述位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
a2.根據(jù)a1所述的方法,其中,當(dāng)判斷結(jié)果為否時,等待預(yù)設(shè)時間后重新執(zhí)行所述獲取位于隊首的隊列元素中包含的更新時間的步驟及其后續(xù)步驟。
a3.根據(jù)a1或a2所述的方法,其中,所述等待預(yù)設(shè)時間的步驟具體包括:
計算所述更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值,根據(jù)所述差值確定所述預(yù)設(shè)時間;或者,根據(jù)預(yù)設(shè)的第二時間間隔確定所述預(yù)設(shè)時間。
a4.根據(jù)a1-a3任一所述的方法,其中,每個隊列元素中進(jìn)一步包含對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識,且所述方法進(jìn)一步包括步驟:將所述獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間,并為所述存儲空間內(nèi)存儲的各個新聞數(shù)據(jù)設(shè)置對應(yīng)的索引文件,所述索引文件的每個索引項中存儲有對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識;
則所述對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新的步驟具體包括:根據(jù)所述位于隊首的隊列元素中包含的數(shù)據(jù)標(biāo)識,從所述索引文件中查詢與該隊列元素中包含的新聞數(shù)據(jù)對應(yīng)的索引項,根據(jù)查詢到的索引項對所述存儲空間內(nèi)相應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。
a5.根據(jù)a1-a4任一所述的方法,其中,所述對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新的步驟具體包括:對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)的至少一個數(shù)據(jù)屬性進(jìn)行更新;其中,所述數(shù)據(jù)屬性包括:類別屬性、和/或權(quán)值屬性。
a6.根據(jù)a1-a5任一所述的方法,其中,每個隊列元素中進(jìn)一步包含對應(yīng)的新聞數(shù)據(jù)首次存儲到所述數(shù)據(jù)隊列時的存儲時間,且所述獲取位于隊首的隊列元素中包含的更新時間的步驟之前,進(jìn)一步包括:
獲取位于隊首的隊列元素中包含的存儲時間,判斷所述存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件,若判斷結(jié)果為是,從隊首刪除該隊列元素。
a7.根據(jù)a6所述的方法,其中,當(dāng)隊列元素對應(yīng)的新聞數(shù)據(jù)首次存儲到所述數(shù)據(jù)隊列時,該隊列元素中包含的新聞數(shù)據(jù)的更新時間等于所述存儲時間。
a8.根據(jù)a1-a7任一所述的方法,其中,所述將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素的步驟具體包括:
每當(dāng)獲取到新聞數(shù)據(jù)時,將該新聞數(shù)據(jù)對應(yīng)的隊列元素添加到所述數(shù)據(jù)隊列的隊尾。
a9.根據(jù)a1-a8任一所述的方法,其中,所述獲取位于隊首的隊列元素中包含的更新時間的步驟具體包括:每隔預(yù)設(shè)的第一時間間隔獲取位于隊首的隊列元素中包含的更新時間。
本發(fā)明還公開了:b10.一種新聞數(shù)據(jù)的更新裝置,包括:
存儲模塊,適于將獲取到的各個新聞數(shù)據(jù)依次存儲為數(shù)據(jù)隊列的各個隊列元素;其中,每個隊列元素中包含對應(yīng)的新聞數(shù)據(jù)的更新時間;
獲取模塊,適于獲取位于隊首的隊列元素中包含的更新時間;
第一判斷模塊,適于判斷所述更新時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的更新條件;
更新模塊,適于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為是時,對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)進(jìn)行更新,并將所述位于隊首的隊列元素從隊首刪除后添加到隊尾,且將添加到隊尾的隊列元素中包含的更新時間修改為當(dāng)前時間。
b11.根據(jù)b10所述的裝置,其中,所述裝置還包括:
休眠模塊,適于當(dāng)?shù)谝慌袛嗄K判斷結(jié)果為否時,等待預(yù)設(shè)時間。
b12.根據(jù)b10或b11所述的裝置,其中,所述休眠模塊進(jìn)一步適于:
計算所述更新時間與當(dāng)前時間之間的間隔與預(yù)設(shè)的更新間隔之間的差值,根據(jù)所述差值確定所述預(yù)設(shè)時間;或者,根據(jù)預(yù)設(shè)的第二時間間隔確定所述預(yù)設(shè)時間。
b13.根據(jù)b10-b12任一所述的裝置,其中,每個隊列元素中進(jìn)一步包含對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識,且所述裝置進(jìn)一步包括:
索引模塊,適于將所述獲取到的各個新聞數(shù)據(jù)存儲到預(yù)設(shè)的存儲空間,并為所述存儲空間內(nèi)存儲的各個新聞數(shù)據(jù)設(shè)置對應(yīng)的索引文件,所述索引文件的每個索引項中存儲有對應(yīng)的新聞數(shù)據(jù)的數(shù)據(jù)標(biāo)識;
所述更新模塊進(jìn)一步適于:根據(jù)所述位于隊首的隊列元素中包含的數(shù)據(jù)標(biāo)識,從所述索引文件中查詢與該隊列元素中包含的新聞數(shù)據(jù)對應(yīng)的索引項,根據(jù)查詢到的索引項對所述存儲空間內(nèi)相應(yīng)的新聞數(shù)據(jù)進(jìn)行更新。
b14.根據(jù)b10-b13任一所述的裝置,其中,所述更新模塊進(jìn)一步適于:
對所述位于隊首的隊列元素對應(yīng)的新聞數(shù)據(jù)的至少一個數(shù)據(jù)屬性進(jìn)行更新;其中,所述數(shù)據(jù)屬性包括:類別屬性、和/或權(quán)值屬性。
b15.根據(jù)b10-b14任一所述的裝置,其中,每個隊列元素中進(jìn)一步包含對應(yīng)的新聞數(shù)據(jù)首次存儲到所述數(shù)據(jù)隊列時的存儲時間,所述獲取模塊進(jìn)一步適于:適于在第一判斷模塊之前,獲取位于隊首的隊列元素中包含的存儲時間;
所述裝置還包括:第二判斷模塊,適于判斷所述存儲時間與當(dāng)前時間之間的間隔是否滿足預(yù)設(shè)的刪除條件,若判斷結(jié)果為是,從隊首刪除該隊列元素。
b16.根據(jù)b15所述的裝置,其中,當(dāng)隊列元素對應(yīng)的新聞數(shù)據(jù)首次存儲到所述數(shù)據(jù)隊列時,該隊列元素中包含的新聞數(shù)據(jù)的更新時間等于所述存儲時間。
b17.根據(jù)b10-b16任一所述的裝置,其中,所述存儲模塊具體適于:
每當(dāng)獲取到新聞數(shù)據(jù)時,將該新聞數(shù)據(jù)對應(yīng)的隊列元素添加到所述數(shù)據(jù)隊列的隊尾。
b18.根據(jù)b10-b17任一所述的裝置,其中,所述獲取位于隊首的隊列元素中包含的更新時間的步驟具體包括:每隔預(yù)設(shè)的第一時間間隔獲取位于隊首的隊列元素中包含的更新時間。