一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法
【專利摘要】本發(fā)明公開了一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法,該算法主要從兩個方面入手:一是在蜘蛛的運行過程中自動的根據(jù)采集到的數(shù)據(jù)對任務的采集間隔進行動態(tài)調(diào)整,以達到運行時間越長,性能越優(yōu);二是通過分析蜘蛛的采集日志,挖掘數(shù)據(jù)量采集最大的時間段,對該時間段在任務配置中進行重點照顧;任務調(diào)度中有兩個重要參數(shù):采集間隔、重點更新時間段;無需人工干預,根據(jù)不同網(wǎng)站的更新頻率以及更新時間段自動適應。達到采集最大化效率的目的。
【專利說明】一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法
【技術(shù)領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領域】,特別是蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法。
【背景技術(shù)】
[0002]在搜索引擎中,網(wǎng)頁數(shù)據(jù)全部是由蜘蛛程序自動請求采集提供的。由于互聯(lián)網(wǎng)上網(wǎng)站有很多,為了方便管理,蜘蛛任務的界定通常由網(wǎng)站來決定。
[0003]蜘蛛程序通常分布在不同集群的服務器上,為了統(tǒng)一協(xié)調(diào)管理,蜘蛛程序會自動的向統(tǒng)一的任務調(diào)度中心請求任務。不同的網(wǎng)站有不同的更新頻率,因此任務的調(diào)度時間和調(diào)度間隔對蜘蛛的性能以及有效率具有非常重大的影響。
[0004]因此任務調(diào)度中心最重要的工作就是任務分發(fā)以及相關參數(shù)的設置。
[0005]任務調(diào)度中心采用輪詢,先進先出的機制。所有的被采集網(wǎng)站按照發(fā)現(xiàn)的時間順序等待被采集。
[0006]沒有考慮到不同網(wǎng)站的更新頻率不一致,導致效率低下。
[0007]在技術(shù)一的基礎上針對不同網(wǎng)站采用人工設置固定采集時間間隔的方式。
[0008]需要人工干預調(diào)整,由于網(wǎng)站數(shù)量眾多,維護成本很高。很多網(wǎng)站自身的更新頻率經(jīng)常發(fā)生變更,沒法及時的調(diào)整。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的是解決上問題,提供一種蜘蛛調(diào)度中心自動化的采集間隔調(diào)整機制,無需人工干預,根據(jù)不同網(wǎng)站的更新頻率以及更新時間段自動適應。達到采集最大化效率的目的。
[0010]為達到上述目的,本發(fā)明所采用的技術(shù)方案是:一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法,其特征在于:該算法主要從兩個方面入手:一是在蜘蛛的運行過程中自動的根據(jù)采集到的數(shù)據(jù)對任務的采集間隔進行動態(tài)調(diào)整,以達到運行時間越長,性能越優(yōu);二是通過分析蜘蛛的采集日志,挖掘數(shù)據(jù)量采集最大的時間段,對該時間段在任務配置中進行重點照顧;任務調(diào)度中有兩個重要參數(shù):采集間隔、重點更新時間段。
[0011]算法步驟:
[0012]1、蜘蛛向任務調(diào)度中心發(fā)起一個獲取任務的請求。
[0013]2、調(diào)度中心對所有網(wǎng)站進行一次分組,分組條件為當前時間段是否是該網(wǎng)站的重點更新時間段。
[0014]3、對兩個分組的數(shù)據(jù)進行分別排序,排序條件為上一次采集時間加上采集間隔。取時間最小的且小于當前時間的任務返回。如果沒有符合條件的則直接返回為空。兩個分組的返回優(yōu)先級為先取在重點更新時間段的組。
[0015]4、蜘蛛如果沒有成功獲取到任務則返回流程1,如果成功獲取則進行數(shù)據(jù)采集。
[0016]5、記錄當前的采集量到日志。如果當前有采集到新的數(shù)據(jù),通知調(diào)度中心自動的將采集間隔調(diào)小,如乘以一個小于I的權(quán)重值如0.9,如果沒有采集到新的數(shù)據(jù)則增加一定的采集間隔,入乘以大于I的權(quán)重值1.1。
[0017]6、繼續(xù)返回I獲取下一個任務。
[0018]7、同時另外有一個后臺程序根據(jù)采集日志,繪制采集量統(tǒng)計圖,綜合多天的數(shù)據(jù)獲取采集量的波峰對應時間段,更新到調(diào)度中心。
[0019]該算法無需人工干預,根據(jù)不同網(wǎng)站的更新頻率以及更新時間段自動適應。達到采集最大化效率的目的。
【具體實施方式】:
[0020]為使本發(fā)明的技術(shù)方案便于理解,以下結(jié)合【具體實施方式】對本發(fā)明作進一步的說明。
[0021]實施例:一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法,其特征在于:該算法主要從兩個方面入手:一是在蜘蛛的運行過程中自動的根據(jù)采集到的數(shù)據(jù)對任務的采集間隔進行動態(tài)調(diào)整,以達到運行時間越長,性能越優(yōu);二是通過分析蜘蛛的采集日志,挖掘數(shù)據(jù)量采集最大的時間段,對該時間段在任務配置中進行重點照顧;任務調(diào)度中有兩個重要參數(shù):采集間隔、重點更新時間段。
[0022]算法步驟:
[0023]1、蜘蛛向任務調(diào)度中心發(fā)起一個獲取任務的請求。
[0024]2、調(diào)度中心對所有網(wǎng)站進行一次分組,分組條件為當前時間段是否是該網(wǎng)站的重點更新時間段。
[0025]3、對兩個分組的數(shù)據(jù)進行分別排序,排序條件為上一次采集時間加上采集間隔。取時間最小的且小于當前時間的任務返回。如果沒有符合條件的則直接返回為空。兩個分組的返回優(yōu)先級為先取在重點更新時間段的組。
[0026]4、蜘蛛如果沒有成功獲取到任務則返回流程1,如果成功獲取則進行數(shù)據(jù)采集。
[0027]5、記錄當前的采集量到日志。如果當前有采集到新的數(shù)據(jù),通知調(diào)度中心自動的將采集間隔調(diào)小,如乘以一個小于I的權(quán)重值如0.9,如果沒有采集到新的數(shù)據(jù)則增加一定的采集間隔,入乘以大于I的權(quán)重值1.1。
[0028]6、繼續(xù)返回I獲取下一個任務。
[0029]7、同時另外有一個后臺程序根據(jù)采集日志,繪制采集量統(tǒng)計圖,綜合多天的數(shù)據(jù)獲取采集量的波峰對應時間段,更新到調(diào)度中心。
[0030]該算法無需人工干預,根據(jù)不同網(wǎng)站的更新頻率以及更新時間段自動適應。達到采集最大化效率的目的。
[0031]以上所述,僅為本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上和實質(zhì)上的限制,凡熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當可利用以上所揭示的技術(shù)內(nèi)容,而作出的些許更動、修飾與演變的等同變化,均為本發(fā)明的等效實施例;同時,凡依據(jù)本發(fā)明的實質(zhì)技術(shù)對以上實施例所作的任何等同變化的更動、修飾與演變,均仍屬于本發(fā)明的技術(shù)方案的范圍內(nèi)。
【權(quán)利要求】
1.一種蜘蛛調(diào)度中心采集動態(tài)調(diào)整算法,其特征在于:該算法主要從兩個方面入手:一是在蜘蛛的運行過程中自動的根據(jù)采集到的數(shù)據(jù)對任務的采集間隔進行動態(tài)調(diào)整,以達到運行時間越長,性能越優(yōu);二是通過分析蜘蛛的采集日志,挖掘數(shù)據(jù)量采集最大的時間段,對該時間段在任務配置中進行重點照顧;任務調(diào)度中有兩個重要參數(shù):采集間隔、重點更新時間段。 算法步驟: . 1、蜘蛛向任務調(diào)度中心發(fā)起一個獲取任務的請求。 . 2、調(diào)度中心對所有網(wǎng)站進行一次分組,分組條件為當前時間段是否是該網(wǎng)站的重點更新時間段。 . 3、對兩個分組的數(shù)據(jù)進行分別排序,排序條件為上一次采集時間加上采集間隔。取時間最小的且小于當前時間的任務返回。如果沒有符合條件的則直接返回為空。兩個分組的返回優(yōu)先級為先取在重點更新時間段的組。 . 4、蜘蛛如果沒有成功獲取到任務則返回流程1,如果成功獲取則進行數(shù)據(jù)采集。 . 5、記錄當前的采集量到日志。如果當前有采集到新的數(shù)據(jù),通知調(diào)度中心自動的將采集間隔調(diào)小,如乘以一個小于I的權(quán)重值如0.9,如果沒有采集到新的數(shù)據(jù)則增加一定的采集間隔,入乘以大于I的權(quán)重值1.1。 . 6、繼續(xù)返回I獲取下一個任務。 . 7、同時另外有一個后臺程序根據(jù)采集日志,繪制采集量統(tǒng)計圖,綜合多天的數(shù)據(jù)獲取采集量的波峰對應時間段,更新到調(diào)度中心。
【文檔編號】G06F17/30GK103778165SQ201210414966
【公開日】2014年5月7日 申請日期:2012年10月26日 優(yōu)先權(quán)日:2012年10月26日
【發(fā)明者】李旭日 申請人:廣州市邦富軟件有限公司