国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器的制造方法

      文檔序號(hào):6515160閱讀:279來(lái)源:國(guó)知局
      網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器的制造方法
      【專利摘要】本發(fā)明提供了一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器,其中,網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法包括:確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài);若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù);若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心,則將調(diào)度給當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心;若所有數(shù)據(jù)中心的任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。通過(guò)本發(fā)明,提高了蜘蛛抓取效率。
      【專利說(shuō)明】網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別是涉及ー種網(wǎng)絡(luò)蜘蛛的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器。
      【背景技術(shù)】
      [0002]網(wǎng)絡(luò)蜘蛛也稱Web蜘蛛,是指通過(guò)網(wǎng)絡(luò)請(qǐng)求,訪問(wèn)互聯(lián)網(wǎng)上的各個(gè)站點(diǎn),來(lái)獲取ー些有價(jià)值信息的應(yīng)用。網(wǎng)絡(luò)蜘蛛通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)尋找網(wǎng)頁(yè),從網(wǎng)站某ー個(gè)頁(yè)面(通常是首頁(yè))開(kāi)始,讀取網(wǎng)頁(yè)的內(nèi)容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這些鏈接地址尋找下ー個(gè)網(wǎng)頁(yè),這樣一直循環(huán)下去,直到把這個(gè)網(wǎng)站所有的網(wǎng)頁(yè)都抓取完為止。
      [0003]當(dāng)需要訪問(wèn)的站點(diǎn)或網(wǎng)頁(yè)數(shù)量較多時(shí),單個(gè)機(jī)器或單個(gè)數(shù)據(jù)中心中蜘蛛的獲取信息的能力將非常有限。這個(gè)時(shí)候就會(huì)需要使用到多個(gè)機(jī)器或多個(gè)數(shù)據(jù)中心的蜘蛛,來(lái)對(duì)大量的站點(diǎn)及網(wǎng)頁(yè)進(jìn)行抓取?,F(xiàn)有使用多個(gè)機(jī)器或多個(gè)數(shù)據(jù)中心的蜘蛛時(shí),蜘蛛任務(wù)的分配大多是將各個(gè)站點(diǎn)或各個(gè)需要抓取的頁(yè)面任務(wù),平均地進(jìn)行分配。
      [0004]然而,對(duì)于任意ー個(gè)站點(diǎn)來(lái)說(shuō),各數(shù)據(jù)中心的網(wǎng)絡(luò)蜘蛛訪問(wèn)該站點(diǎn)的速度是不一樣的,這種平均分配策略有可能造成將抓取任務(wù)分配給訪問(wèn)速度慢的數(shù)據(jù)中心,而訪問(wèn)速度快的數(shù)據(jù)中心則可能處于空閑狀態(tài),造成蜘蛛抓取效率不高。此外,各數(shù)據(jù)中心在一天內(nèi)各個(gè)時(shí)間段的網(wǎng)絡(luò)情況也不一樣,如果某個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)情況不佳,則分配給那個(gè)數(shù)據(jù)中心的任務(wù)則會(huì)持續(xù)積壓,這樣不僅會(huì)造成程序穩(wěn)定性的問(wèn)題,還會(huì)導(dǎo)致ー些重要站點(diǎn)的抓取出現(xiàn)較長(zhǎng)時(shí)間的延遲,同樣使得蜘蛛抓取效率不高。

      【發(fā)明內(nèi)容】

      [0005]鑒于上述現(xiàn)有的網(wǎng)頁(yè)爬取中,蜘蛛抓取效率不高的問(wèn)題,提出了本發(fā)明以便提供ー種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法與任務(wù)調(diào)度器。
      [0006]依據(jù)本發(fā)明的ー個(gè)方面,提供了一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法,包括:
      [0007]確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài);
      [0008]若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向所述當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù);
      [0009]若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心,則將調(diào)度給所述當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心;
      [0010]若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      [0011]可選地,所述確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)的步驟包括:
      [0012]獲取所述各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù);
      [0013]根據(jù)所述當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定所述各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例;[0014]當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓;
      [0015]當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于所述第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。
      [0016]可選地,所述若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量的步驟包括:
      [0017]根據(jù)所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心的所述當(dāng)前任務(wù)積壓比例,判斷在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,所述少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心完成當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)的執(zhí)行的機(jī)率;
      [0018]若所述機(jī)率不為100%,則判斷當(dāng)前數(shù)據(jù)中心的所述當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否小于設(shè)定的最大進(jìn)程數(shù);若小于,則在所述最大進(jìn)程數(shù)允許的范圍內(nèi)增加第一設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若不小于,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整;
      [0019]若所述機(jī)率為100%,則判斷當(dāng)前數(shù)據(jù)中心的所述當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否大于設(shè)定的最小進(jìn)程數(shù)、且減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程后仍能在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,將當(dāng)前數(shù)據(jù)中心的當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)執(zhí)行完;若是,則在所述最小進(jìn)程數(shù)允許的范圍內(nèi)減少所述第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若否,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整。
      [0020]可選地,在所述若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度的步驟之后,還包括:
      [0021]記錄所述延遲的次數(shù);
      [0022]若所述延遲的次數(shù)大于第三設(shè)定閾值,則仍向所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓的數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0023]可選地,在所述確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)的步驟之前,還包括:
      [0024]獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;
      [0025]根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;
      [0026]根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      [0027]可選地,所述獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的步驟包括:對(duì)于每個(gè)數(shù)據(jù)中心,獲取當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取各個(gè)網(wǎng)頁(yè)的頁(yè)面數(shù)量;對(duì)于每個(gè)所述網(wǎng)頁(yè),將當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)在所述設(shè)定時(shí)間段內(nèi),抓取的當(dāng)前網(wǎng)頁(yè)的頁(yè)面數(shù)量,與當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)的數(shù)量的積,作為當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限;
      [0028]所述根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的步驟包括:對(duì)于每個(gè)所述網(wǎng)頁(yè),將各個(gè)數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的和,作為所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。
      [0029]可選地,所述根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)的步驟包括:
      [0030]對(duì)于每個(gè)所述網(wǎng)頁(yè),按照各個(gè)數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限與所有數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的百分比,向各個(gè)數(shù)據(jù)中心分配抓取當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取任務(wù)。
      [0031]根據(jù)本發(fā)明的另一方面,提供了ー種任務(wù)調(diào)度器,包括:
      [0032]狀態(tài)確定模塊,用于確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài);
      [0033]第一積壓調(diào)度模塊,用于若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向所述當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù);
      [0034]第二積壓調(diào)度模塊,用于若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心吋,則將調(diào)度給所述當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心;
      [0035]第三調(diào)度模塊,用于若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      [0036]可選地,所述狀態(tài)確定模塊包括:
      [0037]獲取模塊,用于獲取所述各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取エ作進(jìn)程數(shù);
      [0038]確定模塊,用于根據(jù)所述當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定所述各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例;當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓;當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于所述第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。
      [0039]可選地,所述任務(wù)調(diào)度器還包括:分配模塊,用于在所述狀態(tài)確定模塊確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)之前,獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      [0040]本發(fā)明中,在調(diào)度網(wǎng)頁(yè)爬取任務(wù)時(shí),首先確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài),進(jìn)而根據(jù)各個(gè)數(shù)據(jù)中心不同的任務(wù)積壓狀態(tài)進(jìn)行相適應(yīng)地任務(wù)調(diào)度。如果某數(shù)據(jù)中心無(wú)任務(wù)積壓,則直接進(jìn)行網(wǎng)頁(yè)爬取任務(wù)調(diào)度;如果某數(shù)據(jù)中心有少量任務(wù)積壓,將自行加大抓取強(qiáng)度;如果某數(shù)據(jù)中心出現(xiàn)大量任務(wù)積壓時(shí),會(huì)選擇任務(wù)積壓少的數(shù)據(jù)中心實(shí)施調(diào)度;如果各個(gè)數(shù)據(jù)中心均有大量積壓任務(wù),則將需要分配的任務(wù)延遲一定的時(shí)間,防止出現(xiàn)更嚴(yán)重的積壓。通過(guò)本發(fā)明,使得網(wǎng)頁(yè)爬取任務(wù)調(diào)度更為有效、合理,避免了程序不穩(wěn)定和抓取出現(xiàn)較長(zhǎng)時(shí)間的延遲的現(xiàn)象,提高了蜘蛛抓取效率。
      [0041]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
      【專利附圖】

      【附圖說(shuō)明】
      [0042]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
      [0043]圖1是根據(jù)本發(fā)明實(shí)施例一的一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖;
      [0044]圖2是根據(jù)本發(fā)明實(shí)施例ニ的一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖;
      [0045]圖3是根據(jù)本發(fā)明實(shí)施例三的一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖;
      [0046]圖4是圖3所示實(shí)施例中的網(wǎng)頁(yè)爬取任務(wù)分配的具體流程圖;
      [0047]圖5是圖3所示實(shí)施例中的網(wǎng)頁(yè)爬取任務(wù)調(diào)度的具體流程圖;
      [0048]圖6是根據(jù)本發(fā)明實(shí)施例四的一種任務(wù)調(diào)度器的結(jié)構(gòu)框圖。
      【具體實(shí)施方式】
      [0049]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
      [0050]實(shí)施例一
      [0051]參照?qǐng)D1,示出了根據(jù)本發(fā)明實(shí)施例一的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖。
      [0052]本實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法包括以下步驟:
      [0053]步驟S102:確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)。
      [0054]每個(gè)數(shù)據(jù)中心中設(shè)置有一至多臺(tái)用于執(zhí)行網(wǎng)頁(yè)爬取任務(wù)的服務(wù)器,每臺(tái)服務(wù)器上設(shè)置有多個(gè)網(wǎng)絡(luò)爬蟲(chóng)程序,通常一個(gè)數(shù)據(jù)中心的多臺(tái)服務(wù)器主要針對(duì)ー個(gè)電信運(yùn)營(yíng)商運(yùn)營(yíng)的網(wǎng)站進(jìn)行網(wǎng)頁(yè)爬取,但在某些情況下,如該數(shù)據(jù)中心空閑而其它數(shù)據(jù)中心任務(wù)量較大時(shí),也可以爬取其它電信運(yùn)營(yíng)商運(yùn)營(yíng)的網(wǎng)站的網(wǎng)頁(yè)。
      [0055]當(dāng)前任務(wù)積壓狀態(tài)反映了各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)執(zhí)行情況,各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)根據(jù)任務(wù)積壓情況可以分為無(wú)積壓、少量積壓和大量積壓。具體的積壓判定可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況適當(dāng)設(shè)置,如根據(jù)任務(wù)積壓時(shí)間和/或任務(wù)積壓數(shù)量等等。本實(shí)施例中,以數(shù)據(jù)中心為單位,確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)。
      [0056]步驟S104:若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為無(wú)積壓,則直接繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0057]步驟S106:若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0058]步驟S108:若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心,則將調(diào)度給當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心。
      [0059]一般來(lái)說(shuō),會(huì)先選擇與當(dāng)前數(shù)據(jù)中心執(zhí)行相同的電信運(yùn)營(yíng)商的網(wǎng)頁(yè)爬取任務(wù)的其它數(shù)據(jù)中心,在沒(méi)有這樣的數(shù)據(jù)中心的情況下,再選擇執(zhí)行不同的電信運(yùn)營(yíng)商的網(wǎng)頁(yè)爬取任務(wù)的數(shù)據(jù)中心。
      [0060]步驟SllO:若所有數(shù)據(jù)中心的任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      [0061 ] 通過(guò)本實(shí)施例,在調(diào)度網(wǎng)頁(yè)爬取任務(wù)時(shí),首先確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài),進(jìn)而根據(jù)各個(gè)數(shù)據(jù)中心不同的任務(wù)積壓狀態(tài)進(jìn)行相適應(yīng)地任務(wù)調(diào)度。如果某數(shù)據(jù)中心無(wú)任務(wù)積壓,則直接進(jìn)行網(wǎng)頁(yè)爬取任務(wù)調(diào)度;如果某數(shù)據(jù)中心有少量任務(wù)積壓,將自行加大抓取強(qiáng)度;如果某數(shù)據(jù)中心出現(xiàn)大量任務(wù)積壓時(shí),會(huì)選擇任務(wù)積壓少的數(shù)據(jù)中心實(shí)施調(diào)度;如果各個(gè)數(shù)據(jù)中心均有大量積壓任務(wù),則將需要分配的任務(wù)延遲一定的時(shí)間,如原分配時(shí)間的1.5倍,防止出現(xiàn)更嚴(yán)重的積壓。通過(guò)本實(shí)施例,使得網(wǎng)頁(yè)爬取任務(wù)調(diào)度更為有效、合理,避免了程序不穩(wěn)定和抓取出現(xiàn)較長(zhǎng)時(shí)間的延遲的現(xiàn)象,提高了蜘蛛抓取效率。
      [0062]實(shí)施例ニ
      [0063]參照?qǐng)D2,示出了根據(jù)本發(fā)明實(shí)施例ニ的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖。
      [0064]本實(shí)施例中,以對(duì)網(wǎng)頁(yè)爬取任務(wù)進(jìn)行調(diào)度的任務(wù)調(diào)度器為執(zhí)行主體,該任務(wù)調(diào)度器可以設(shè)置于某個(gè)數(shù)據(jù)中心中,也可以設(shè)置在獨(dú)立的調(diào)度中心,用于對(duì)網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取任務(wù)進(jìn)行分配和調(diào)度。
      [0065]本實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法包括以下步驟:
      [0066]步驟S202:任務(wù)調(diào)度器獲取各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限。
      [0067]其中,網(wǎng)頁(yè)爬取權(quán)限用于表示網(wǎng)絡(luò)爬蟲(chóng)的爬網(wǎng)能力,如在設(shè)定時(shí)間內(nèi)對(duì)某個(gè)或某些網(wǎng)站網(wǎng)頁(yè)的爬取能力。
      [0068]本實(shí)施例中,獲取各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的優(yōu)選方式是,對(duì)于每個(gè)數(shù)據(jù)中心,獲取當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取各個(gè)網(wǎng)頁(yè)的頁(yè)面數(shù)量;對(duì)于每個(gè)所述網(wǎng)頁(yè),將當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取的當(dāng)前網(wǎng)頁(yè)的頁(yè)面數(shù)量,與當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的數(shù)量的積,作為當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。通過(guò)該種獲取方式,能夠全面、客觀地反映出數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取能力。
      [0069]步驟S204:任務(wù)調(diào)度器根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限。
      [0070]優(yōu)選地,在采用上述獲取各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的優(yōu)選方式的基礎(chǔ)上,對(duì)于每個(gè)所述網(wǎng)頁(yè),可以將各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的和,作為所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。
      [0071]步驟S206:任務(wù)調(diào)度器根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      [0072]在獲取了各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限后,可以采用任意適當(dāng)?shù)姆绞綖楦鱾€(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。一種優(yōu)選的方式為,對(duì)于每個(gè)所述網(wǎng)頁(yè),按照各個(gè)數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限與所有數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的百分比,向各個(gè)數(shù)據(jù)中心分配抓取當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取任務(wù)。其中,百分比可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況適當(dāng)設(shè)置,本發(fā)明對(duì)此不作限制。[0073]通過(guò)本發(fā)明上述的實(shí)施例,實(shí)現(xiàn)了各個(gè)數(shù)據(jù)中心網(wǎng)頁(yè)爬取任務(wù)的合理分配。
      [0074]需要說(shuō)明的是,在實(shí)際應(yīng)用中,網(wǎng)頁(yè)爬取任務(wù)分配方式不限于上述步驟S202-S206的方式,也可以采用其它網(wǎng)頁(yè)爬取任務(wù)分配方案,僅采用下述網(wǎng)頁(yè)爬取任務(wù)調(diào)度方案,以實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)爬取任務(wù)的有效調(diào)度。而將本實(shí)施例的上述網(wǎng)頁(yè)爬取任務(wù)分配方案和下述網(wǎng)頁(yè)爬取任務(wù)調(diào)度方案相結(jié)合,使得網(wǎng)頁(yè)爬取任務(wù)分配和調(diào)度均達(dá)到高效和合理的效果;并且,將本實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)分配結(jié)合到網(wǎng)頁(yè)爬取任務(wù)調(diào)度方案中,進(jìn)ー步提高了網(wǎng)頁(yè)爬取任務(wù)調(diào)度和執(zhí)行效率,避免了網(wǎng)頁(yè)爬取任務(wù)積壓。
      [0075]步驟S208:任務(wù)調(diào)度器確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)。
      [0076]其中,任務(wù)積壓狀態(tài)包括:無(wú)積壓、少量任務(wù)積壓和大量任務(wù)積壓。
      [0077]優(yōu)選地,一種確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)的方式包括:獲取各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù);根據(jù)當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例;當(dāng)當(dāng)前任務(wù)積壓比例小于第一設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為無(wú)積壓;當(dāng)當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓;當(dāng)當(dāng)前任務(wù)積壓比例大于或等于第二設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。其中,第一設(shè)定閾值小于第二設(shè)定閾值。通過(guò)當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),可以更為準(zhǔn)確地確定當(dāng)前任務(wù)積壓狀態(tài)。
      [0078]步驟S210:若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為無(wú)積壓,則任務(wù)調(diào)度器直接繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0079]步驟S212:若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則任務(wù)調(diào)度器調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0080]其中,調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量的步驟包括:
      [0081]根據(jù)任務(wù)積壓狀態(tài)為少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例,判斷在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心是否能將本數(shù)據(jù)中心的當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)執(zhí)行完,也即,判斷在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心完成當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)的執(zhí)行的機(jī)率;
      [0082]若不能(機(jī)率不為100%),則判斷當(dāng)前數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否小于設(shè)定的最大進(jìn)程數(shù);若小于,則在最大進(jìn)程數(shù)允許的范圍內(nèi)增加第一設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若不小于,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整;
      [0083]若能(機(jī)率為100%),則判斷當(dāng)前數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否大于設(shè)定的最小進(jìn)程數(shù)、且減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程后仍能在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,將當(dāng)前數(shù)據(jù)中心的當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)執(zhí)行完;若是,則在最小進(jìn)程數(shù)允許的范圍內(nèi)減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若否,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整。
      [0084]其中,第一設(shè)定數(shù)量和第二設(shè)定數(shù)量均由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況適當(dāng)設(shè)置,本發(fā)明對(duì)此不作限制。
      [0085]在最大進(jìn)程數(shù)允許的范圍內(nèi)增加第一設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程,可以有效保證網(wǎng)頁(yè)爬取任務(wù)的完成,避免任務(wù)積壓;在最小進(jìn)程數(shù)允許的范圍內(nèi)減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程,在保證網(wǎng)頁(yè)爬取任務(wù)完成的基礎(chǔ)上,減少系統(tǒng)消耗。[0086]步驟S214:若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心,則任務(wù)調(diào)度器將調(diào)度給當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心。
      [0087]步驟S216:若所有數(shù)據(jù)中心的任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則任務(wù)調(diào)度器延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      [0088]延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度,可以避免更加嚴(yán)重的任務(wù)積壓。具體的延遲設(shè)定時(shí)間可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況適當(dāng)設(shè)置,如延遲為原時(shí)間的1.5倍等,本發(fā)明對(duì)此不作限制。
      [0089]步驟S218:任務(wù)調(diào)度器記錄延遲的次數(shù);若延遲的次數(shù)大于第三設(shè)定閾值,則任務(wù)調(diào)度器仍向任務(wù)積壓狀態(tài)為大量任務(wù)積壓的數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0090]當(dāng)延遲的次數(shù)大于第三設(shè)定閾值時(shí),任務(wù)調(diào)度器仍然向任務(wù)積壓狀態(tài)為大量任務(wù)積壓的數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù),避免了網(wǎng)頁(yè)爬取任務(wù)無(wú)法得到調(diào)度的現(xiàn)象。
      [0091]通過(guò)本實(shí)施例,使得網(wǎng)頁(yè)爬取任務(wù)調(diào)度更為有效、合理,避免了程序不穩(wěn)定和抓取出現(xiàn)較長(zhǎng)時(shí)間的延遲的現(xiàn)象,提高了蜘蛛抓取效率。
      [0092]實(shí)施例三
      [0093]參照?qǐng)D3,示出了根據(jù)本發(fā)明實(shí)施例三的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法的步驟流程圖。
      [0094]本實(shí)施例中,網(wǎng)頁(yè)爬取任務(wù)調(diào)度主要包括兩部分:第一部分,本發(fā)明實(shí)施例的網(wǎng)絡(luò)測(cè)速的爬蟲(chóng)任務(wù)分配方法;第二部分,蜘蛛任務(wù)的動(dòng)態(tài)分配及抓取強(qiáng)度調(diào)整方法。由此,本實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法包括以下步驟:
      [0095]步驟S302:任務(wù)調(diào)度器基于網(wǎng)絡(luò)測(cè)速進(jìn)行網(wǎng)頁(yè)爬取任務(wù)分配。
      [0096]本發(fā)明實(shí)施例基于網(wǎng)絡(luò)測(cè)速的爬蟲(chóng)任務(wù)分配方法包括:控制每個(gè)數(shù)據(jù)中心(也可以稱為機(jī)房)定期對(duì)網(wǎng)絡(luò)爬蟲(chóng)監(jiān)控的所有站點(diǎn)進(jìn)行網(wǎng)絡(luò)測(cè)速,并將測(cè)速的結(jié)果發(fā)送至網(wǎng)絡(luò)爬蟲(chóng)的任務(wù)調(diào)度器。任務(wù)調(diào)度器將在設(shè)定時(shí)間如每天凌晨,根據(jù)各個(gè)站點(diǎn)收集的測(cè)速結(jié)果,調(diào)整該站點(diǎn)分配給這些數(shù)據(jù)中心的任務(wù)比例。
      [0097]本發(fā)明實(shí)施例中的網(wǎng)頁(yè)爬取任務(wù)分配的具體流程如圖4所示,該流程包括:
      [0098]步驟S3022:記錄抓取網(wǎng)頁(yè)耗時(shí)。
      [0099]例如,所有網(wǎng)絡(luò)爬蟲(chóng)程序(也稱為蜘蛛程序),在訪問(wèn)網(wǎng)站A時(shí),都會(huì)將所訪問(wèn)的網(wǎng)站名A及訪問(wèn)時(shí)間記錄下來(lái)。同樣,在訪問(wèn)其它網(wǎng)站時(shí),也會(huì)進(jìn)行上述記錄。
      [0100]步驟S3024:收集各數(shù)據(jù)中心對(duì)各網(wǎng)站的抓取耗時(shí)數(shù)據(jù)。
      [0101]仍以網(wǎng)站A為例,任務(wù)調(diào)度器會(huì)在設(shè)定時(shí)間如每天的凌晨,將所有數(shù)據(jù)中心記錄下來(lái)的數(shù)據(jù)進(jìn)行處理,得出每個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)程序,在一段時(shí)間內(nèi)(如ls),所能夠抓取網(wǎng)站A的頁(yè)面數(shù)量。記為:ability_i,其中i表示數(shù)據(jù)中心序號(hào)。
      [0102]步驟S3026:計(jì)算各數(shù)據(jù)中心對(duì)各網(wǎng)站的網(wǎng)頁(yè)爬取權(quán)限(即網(wǎng)站的抓取能力)。
      [0103]仍以網(wǎng)站A為例,將數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)程序數(shù)量記為workj,則該數(shù)據(jù)中心的抓取網(wǎng)站A的網(wǎng)頁(yè)爬取權(quán)限為work_iXability_i,其中,work_i中的i與ability_i中的i含義相同,均表示數(shù)據(jù)中心序號(hào)。所有數(shù)據(jù)中心的對(duì)網(wǎng)站A來(lái)說(shuō),總的網(wǎng)頁(yè)爬取權(quán)限記為 work_l*ability_l+work_2*abiIity_2+......+work_n*abiIity_n。
      [0104]步驟S3028:根據(jù)網(wǎng)頁(yè)爬取權(quán)限,重新分配網(wǎng)站任務(wù)在各數(shù)據(jù)中心的比例。
      [0105]仍以網(wǎng)站A為例,網(wǎng)站A的任務(wù)分配給數(shù)據(jù)中心i的比例為,數(shù)據(jù)中心i抓取網(wǎng)站A的網(wǎng)頁(yè)爬取權(quán)限占所有數(shù)據(jù)中心抓取網(wǎng)站A網(wǎng)頁(yè)爬取權(quán)限的百分比。
      [0106]根據(jù)上述網(wǎng)頁(yè)爬取任務(wù)分配的流程,假設(shè)所有數(shù)據(jù)中心都是空閑狀態(tài),即無(wú)積壓,任務(wù)調(diào)度器會(huì)將網(wǎng)站A依據(jù)計(jì)算所得的分配比例,將任務(wù)分配給各個(gè)數(shù)據(jù)中心,那么所有數(shù)據(jù)中心對(duì)于網(wǎng)站A的抓取幾乎同時(shí)完成。這樣就不會(huì)存在某些數(shù)據(jù)中心中有任務(wù)積壓,而另一部分?jǐn)?shù)據(jù)中心卻一直空閑的情況,從而不浪費(fèi)時(shí)間和資源。
      [0107]步驟S304:任務(wù)調(diào)度器對(duì)網(wǎng)頁(yè)爬取任務(wù)進(jìn)行動(dòng)態(tài)分配及抓取強(qiáng)度調(diào)整。
      [0108]本實(shí)施例中任務(wù)調(diào)度器對(duì)網(wǎng)頁(yè)爬取任務(wù)的動(dòng)態(tài)分配及抓取強(qiáng)度調(diào)整包括?.在毎次實(shí)施任務(wù)調(diào)度時(shí),任務(wù)調(diào)度器會(huì)對(duì)各數(shù)據(jù)中心當(dāng)前的抓取強(qiáng)度及積壓的任務(wù)數(shù)量進(jìn)行實(shí)時(shí)統(tǒng)計(jì),井根據(jù)統(tǒng)計(jì)結(jié)果,針對(duì)以下情況進(jìn)行相應(yīng)的處理: [0109]如果某數(shù)據(jù)中心出現(xiàn)少量的任務(wù)積壓吋,該數(shù)據(jù)中心將自行加大抓取強(qiáng)度,即:啟動(dòng)更多抓取進(jìn)程,啟動(dòng)的進(jìn)程數(shù)設(shè)置ー個(gè)上限;
      [0110]如果某數(shù)據(jù)中心出現(xiàn)大量的任務(wù)積壓時(shí),爬蟲(chóng)調(diào)度器會(huì)將后續(xù)任務(wù)分配給任務(wù)積壓少的數(shù)據(jù)中心;
      [0111]如果所有數(shù)據(jù)中心均有大量的任務(wù)積壓時(shí),任務(wù)調(diào)度器會(huì)將后續(xù)的任務(wù)延遲一段時(shí)間再進(jìn)行調(diào)度,以防止出現(xiàn)更嚴(yán)重的積壓。
      [0112]本發(fā)明實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)調(diào)度的具體流程如圖5所示,該流程包括:
      [0113]步驟S3042:網(wǎng)頁(yè)爬取任務(wù)開(kāi)始調(diào)度。
      [0114]步驟S3044:檢測(cè)某個(gè)數(shù)據(jù)中心的任務(wù)數(shù)及工作進(jìn)程數(shù),判斷積壓狀況。
      [0115]假設(shè)某數(shù)據(jù)中心的任務(wù)數(shù)為task_num,工作進(jìn)程數(shù)為work_num,則該數(shù)據(jù)中心的積壓比例overhead=task_num/work_num。將判斷無(wú)積壓的閾值記為low_threshold,大量積壓的閾值記為high_threshold。當(dāng)overhead〈low_threshold時(shí),認(rèn)為該數(shù)據(jù)中心無(wú)任務(wù)積壓;當(dāng)low_threshold〈=overhead〈high_threshold時(shí),認(rèn)為該數(shù)據(jù)中心少量任務(wù)積壓;當(dāng)overhead>=high_threshold時(shí),認(rèn)為該數(shù)據(jù)中心大量積壓。
      [0116]上述積壓閾值的設(shè)定,可以在開(kāi)啟網(wǎng)絡(luò)爬蟲(chóng)進(jìn)程時(shí),根據(jù)設(shè)定的最少進(jìn)程數(shù)和最多進(jìn)程數(shù)計(jì)算得到。lowjhreshold的值為,這些任務(wù)在進(jìn)行下一次調(diào)度之前,能夠在最少進(jìn)程工作的情況下,將其處理完成的task_num/work_num比。high_threshold的值為,這些任務(wù)在進(jìn)行下一次調(diào)度之前,能夠在最多進(jìn)程工作的情況下,將其處理完成的task_num/work_num I:匕。
      [0117]步驟S3046:判斷某個(gè)數(shù)據(jù)中心的任務(wù)積壓狀態(tài)是否為大量任務(wù)積壓,若是,則執(zhí)行步驟S3048 ;若否,則執(zhí)行步驟3054。
      [0118]步驟S3048:判斷是否各個(gè)數(shù)據(jù)中心均為大量任務(wù)積壓,若是,則執(zhí)行步驟S3050 ;若否,則執(zhí)行步驟S3052。
      [0119]步驟S3050:將分配給該數(shù)據(jù)中心的網(wǎng)頁(yè)爬取任務(wù)延遲之后,重新放回至調(diào)度隊(duì)列,等待再次調(diào)度,執(zhí)行步驟S3060。
      [0120]將網(wǎng)頁(yè)爬取任務(wù)延遲之后,重新放回調(diào)度隊(duì)列的處理,是當(dāng)發(fā)現(xiàn)所有數(shù)據(jù)中心都有大量積壓任務(wù)時(shí),這個(gè)時(shí)候如果再投遞任務(wù),只會(huì)使積壓狀況更為嚴(yán)重。這時(shí),任務(wù)調(diào)度器將修改這些任務(wù)的下一次調(diào)度時(shí)間,將它們下一次的調(diào)度時(shí)間調(diào)整為原來(lái)的0.5—1.5倍之間。然后,將這些任務(wù)放回調(diào)度隊(duì)列。
      [0121]此外,為了防止一些任務(wù)一直在延遲,永遠(yuǎn)得不到調(diào)度。本實(shí)施例的任務(wù)調(diào)度器將記錄這些任務(wù)延遲了的次數(shù)。當(dāng)延遲次數(shù)大于一定的閾值時(shí),則不論集群是否有大量積壓,依然將任務(wù)分配出去。
      [0122]步驟S3052:將分配給該數(shù)據(jù)中心的網(wǎng)頁(yè)爬取任務(wù)分配至未積壓的數(shù)據(jù)中心,包括無(wú)積壓的數(shù)據(jù)中心和少量任務(wù)積壓的數(shù)據(jù)中心,執(zhí)行步驟S3060。
      [0123]步驟S3054:將分配給該數(shù)據(jù)中心的網(wǎng)頁(yè)爬取任務(wù)直接分配給該數(shù)據(jù)中心,執(zhí)行步驟S3056。
      [0124]步驟S3056:判斷該數(shù)據(jù)中心的任務(wù)積壓狀態(tài)是否為無(wú)積壓,若是,則執(zhí)行步驟S3060 ;若否,則執(zhí)行步驟S3058。
      [0125]步驟S3058:調(diào)整該數(shù)據(jù)中心的網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),執(zhí)行步驟S3060。
      [0126]其中,調(diào)整網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)的過(guò)程包括:各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)進(jìn)程在每處理完k (由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況適當(dāng)設(shè)定)次任務(wù)后,就獲取ー下本數(shù)據(jù)中心的task_num和work_num,然后判斷是否能在下一次調(diào)度時(shí),將所有網(wǎng)頁(yè)爬取任務(wù)處理完成。
      [0127]若不能,則判斷當(dāng)前機(jī)器的網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)量是否小于設(shè)定的最大進(jìn)程數(shù)。若小于設(shè)定的最大進(jìn)程數(shù),則啟動(dòng)ー個(gè)新的進(jìn)程;若大于設(shè)定的最大進(jìn)程數(shù),則不做任何操作。
      [0128]若能,則判斷work_num減一能否完成網(wǎng)頁(yè)爬取任務(wù),并且,當(dāng)前機(jī)器的網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)量是否大于最小進(jìn)程數(shù)。若是,則減少ー個(gè)工作進(jìn)程;若不是,則不做任何操作。
      [0129]通過(guò)上述處理,就能夠在網(wǎng)頁(yè)爬取任務(wù)量大的時(shí)候,増加工作進(jìn)程,提升服務(wù)器同時(shí)并行處理的任務(wù)數(shù)量;在網(wǎng)頁(yè)爬取任務(wù)量少的時(shí)候,減少工作進(jìn)程,降低機(jī)器壓力,使機(jī)器的狀態(tài)穩(wěn)定。
      [0130]步驟S3060:調(diào)度完成。
      [0131]通過(guò)本實(shí)施例,能夠根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)進(jìn)程抓取不同網(wǎng)站的能力,自動(dòng)調(diào)整該網(wǎng)站抓取任務(wù)分配到各數(shù)據(jù)中心的任務(wù)比例。同吋,當(dāng)某些數(shù)據(jù)中心的任務(wù)出現(xiàn)擠壓時(shí),能夠動(dòng)態(tài)調(diào)整任務(wù)的分配,有效抑制任務(wù)隊(duì)列的進(jìn)ー步擁堵。并且,能在數(shù)據(jù)中心任務(wù)空閑時(shí),減少網(wǎng)絡(luò)爬蟲(chóng)的工作進(jìn)程,降低機(jī)器負(fù)載,使得程序運(yùn)行更加穩(wěn)定。
      [0132]實(shí)施例四
      [0133]參照?qǐng)D6,示出了根據(jù)本發(fā)明實(shí)施例四的一種任務(wù)調(diào)度器的結(jié)構(gòu)框圖。
      [0134]本實(shí)施例的任務(wù)調(diào)度器,包括:狀態(tài)確定模塊402,用于確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài);第一調(diào)度模塊404,用于若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù);第二調(diào)度模塊406,用于若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心吋,則將調(diào)度給當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心;第三調(diào)度模塊408,用于若所有數(shù)據(jù)中心的任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。此外,本實(shí)施例的任務(wù)調(diào)度器還可以包括:第四調(diào)度模塊410,用于若當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為無(wú)積壓,則直接繼續(xù)向當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0135]優(yōu)選地,狀態(tài)確定模塊402包括:獲取模塊4022,用于獲取各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù);確定模塊4024,用于根據(jù)當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例;當(dāng)當(dāng)前任務(wù)積壓比例小于第一設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為無(wú)積壓;當(dāng)當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓;當(dāng)當(dāng)前任務(wù)積壓比例大于或等于第二設(shè)定閾值時(shí),則數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。
      [0136]優(yōu)選地,第一調(diào)度模塊404在當(dāng)前數(shù)據(jù)中心的任務(wù)積壓狀態(tài)為少量任務(wù)積壓,調(diào)整當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量吋:根據(jù)任務(wù)積壓狀態(tài)為少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例,判斷在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心完成當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)的執(zhí)行的機(jī)率;若機(jī)率不為100%,則判斷當(dāng)前數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否小于設(shè)定的最大進(jìn)程數(shù);若小干,則在最大進(jìn)程數(shù)允許的范圍內(nèi)增加第一設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若不小于,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整;若機(jī)率為100%,則判斷當(dāng)前數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否大于設(shè)定的最小進(jìn)程數(shù)、且減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程后仍能在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,將當(dāng)前數(shù)據(jù)中心的當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)執(zhí)行完;若是,則在最小進(jìn)程數(shù)允許的范圍內(nèi)減少所述第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若否,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整。
      [0137]優(yōu)選地,本實(shí)施例的任務(wù)調(diào)度器還包括:第五調(diào)度模塊412,用于在第三調(diào)度模塊408在所有數(shù)據(jù)中心的任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度之后,記錄延遲的次數(shù);若延遲的次數(shù)大于第三設(shè)定閾值,則仍向任務(wù)積壓狀態(tài)為大量任務(wù)積壓的數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      [0138]優(yōu)選地,本實(shí)施例的任務(wù)調(diào)度器還包括:分配模塊414,用于在狀態(tài)確定模塊402確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)之前,獲取各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      [0139]優(yōu)選地,分配模塊414在獲取各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限時(shí):對(duì)于每個(gè)數(shù)據(jù)中心,獲取當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取各個(gè)網(wǎng)頁(yè)的頁(yè)面數(shù)量;對(duì)于每個(gè)網(wǎng)頁(yè),將當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取的當(dāng)前網(wǎng)頁(yè)的頁(yè)面數(shù)量,與當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的數(shù)量的積,作為當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。
      [0140]優(yōu)選地,分配模塊414在根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限時(shí):對(duì)于每個(gè)網(wǎng)頁(yè),將各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的和,作為所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。
      [0141]優(yōu)選地,分配模塊414在根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)吋:對(duì)于每個(gè)網(wǎng)頁(yè),按照各個(gè)數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限與所有數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的百分比,向各個(gè)數(shù)據(jù)中心分配抓取當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取任務(wù)。
      [0142]本實(shí)施例的任務(wù)調(diào)度器用于實(shí)現(xiàn)前述多個(gè)方法實(shí)施例中相應(yīng)的網(wǎng)頁(yè)爬取任務(wù)處理方法,并具有相應(yīng)的方法實(shí)施例的有益效果,在此不再贅述。
      [0143]本發(fā)明針對(duì)傳統(tǒng)平均分配網(wǎng)頁(yè)爬取任務(wù)機(jī)制的不足,進(jìn)行了網(wǎng)頁(yè)爬取任務(wù)改迸,包括:(I)任務(wù)調(diào)度器將根據(jù)各個(gè)數(shù)據(jù)中心訪問(wèn)各站點(diǎn)的速度快慢,調(diào)整該站點(diǎn)在某數(shù)據(jù)中心的任務(wù)分配比例;(2)任務(wù)調(diào)度器會(huì)對(duì)各數(shù)據(jù)中心網(wǎng)絡(luò)爬蟲(chóng)的抓取強(qiáng)度及未處理的任務(wù)數(shù)量進(jìn)行統(tǒng)計(jì),如果某數(shù)據(jù)中心有少量任務(wù)積壓,將自行加大抓取強(qiáng)度;如果某數(shù)據(jù)中心出現(xiàn)大量任務(wù)積壓時(shí),會(huì)選擇任務(wù)積壓少的數(shù)據(jù)中心實(shí)施分配;如果各數(shù)據(jù)中心均有大量積壓任務(wù),則將需要分配的任務(wù)延遲一定的時(shí)間,防止出現(xiàn)更嚴(yán)重的積壓。
      [0144]通過(guò)本發(fā)明實(shí)施例,能夠根據(jù)各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)進(jìn)程抓取不同網(wǎng)站的能力,自動(dòng)調(diào)整該網(wǎng)站抓取任務(wù)分配到各數(shù)據(jù)中心的任務(wù)比例。同時(shí),當(dāng)某些數(shù)據(jù)中心的任務(wù)出現(xiàn)擠壓時(shí),能夠動(dòng)態(tài)調(diào)整任務(wù)的分配,有效抑制任務(wù)隊(duì)列的進(jìn)ー步擁堵。并且,能在數(shù)據(jù)中心任務(wù)空閑時(shí),減少網(wǎng)絡(luò)爬蟲(chóng)的工作進(jìn)程,降低機(jī)器負(fù)載,使得程序運(yùn)行更加穩(wěn)定。
      [0145]在此提供的網(wǎng)頁(yè)爬取任務(wù)處理方案不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造具有本發(fā)明方案的系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
      [0146]在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技木,以便不模糊對(duì)本說(shuō)明書(shū)的理解。
      [0147]類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的ー個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循【具體實(shí)施方式】的權(quán)利要求書(shū)由此明確地并入該【具體實(shí)施方式】,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
      [0148]本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成ー個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者単元中的至少ー些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或単元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。
      [0149]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。
      [0150]本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在ー個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP )來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的網(wǎng)頁(yè)爬取任務(wù)處理方案中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有ー個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
      [0151] 應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“ー個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
      【權(quán)利要求】
      1.一種網(wǎng)頁(yè)爬取任務(wù)調(diào)度方法,包括: 確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài); 若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向所述當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù); 若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心,則將調(diào)度給所述當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給所述任務(wù)積壓狀態(tài)為 少量任務(wù)積壓的其它數(shù)據(jù)中心; 若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      2.根據(jù)權(quán)利要求1所述的方法,其中,所述確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)的步驟包括: 獲取所述各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù); 根據(jù)所述當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定所述各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例; 當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓; 當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于所述第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。
      3.根據(jù)權(quán)利要求2所述的方法,其中,所述若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量的步驟包括: 根據(jù)所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心的所述當(dāng)前任務(wù)積壓比例,判斷在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,所述少量任務(wù)積壓的當(dāng)前數(shù)據(jù)中心完成當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)的執(zhí)行的機(jī)率; 若所述機(jī)率不為100%,則判斷當(dāng)前數(shù)據(jù)中心的所述當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否小于設(shè)定的最大進(jìn)程數(shù);若小于,則在所述最大進(jìn)程數(shù)允許的范圍內(nèi)增加第一設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若不小于,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整; 若所述機(jī)率為100%,則判斷當(dāng)前數(shù)據(jù)中心的所述當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)是否大于設(shè)定的最小進(jìn)程數(shù)、且減少第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程后仍能在下一次網(wǎng)頁(yè)爬取任務(wù)調(diào)度前,將當(dāng)前數(shù)據(jù)中心的當(dāng)前所有網(wǎng)頁(yè)爬取任務(wù)執(zhí)行完;若是,則在所述最小進(jìn)程數(shù)允許的范圍內(nèi)減少所述第二設(shè)定數(shù)量的網(wǎng)頁(yè)爬取工作進(jìn)程;若否,則不進(jìn)行網(wǎng)頁(yè)爬取工作進(jìn)程數(shù)調(diào)整。
      4.根據(jù)權(quán)利要求1所述的方法,其中,在所述若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度的步驟之后,還包括: 記錄所述延遲的次數(shù); 若所述延遲的次數(shù)大于第三設(shè)定閾值,則仍向所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓的數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù)。
      5.根據(jù)權(quán)利要求1所述的方法,其中,在所述確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)的步驟之前,還包括: 獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限; 根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      6.根據(jù)權(quán)利要求5所述的方法,其中, 所述獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的步驟包括:對(duì)于每個(gè)數(shù)據(jù)中心,獲取當(dāng)前數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)在設(shè)定時(shí)間段內(nèi),抓取各個(gè)網(wǎng)頁(yè)的頁(yè)面數(shù)量;對(duì)于每個(gè)所述網(wǎng)頁(yè),將當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)在所述設(shè)定時(shí)間段內(nèi),抓取的當(dāng)前網(wǎng)頁(yè)的頁(yè)面數(shù)量,與當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)的數(shù)量的積,作為當(dāng)前數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限; 所述根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限的步驟包括:對(duì)于每個(gè)所述網(wǎng)頁(yè),將各個(gè)數(shù)據(jù)中心的所述網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的和,作為所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限。
      7.根據(jù)權(quán)利要求6所述的方法,其中,所述根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)的步驟包括: 對(duì)于每個(gè)所述網(wǎng)頁(yè),按照各個(gè)數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限與所有數(shù)據(jù)中心對(duì)當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取權(quán)限的百分比,向各個(gè)數(shù)據(jù)中心分配抓取當(dāng)前網(wǎng)頁(yè)的網(wǎng)頁(yè)爬取任務(wù)。
      8.ー種任務(wù)調(diào)度器,包括: 狀態(tài)確定模塊,用于確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài); 第一積壓調(diào)度模塊,用于若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓,則調(diào)整所述當(dāng)前數(shù)據(jù)中心中的網(wǎng)絡(luò)爬蟲(chóng)的抓取進(jìn)程數(shù)量,并繼續(xù)向所述當(dāng)前數(shù)據(jù)中心調(diào)度后續(xù)網(wǎng)頁(yè)爬取任務(wù); 第二積壓調(diào)度模塊,用于若當(dāng)前數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)為大量任務(wù)積壓、且存在所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓或無(wú)積壓的其它數(shù)據(jù)中心吋,則將調(diào)度給所述當(dāng)前數(shù)據(jù)中心的后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度給所述任務(wù)積壓狀態(tài)為少量任務(wù)積壓的其它數(shù)據(jù)中心; 第三調(diào)度模塊,用于若所有數(shù)據(jù)中心的所述任務(wù)積壓狀態(tài)均為大量任務(wù)積壓,則延遲設(shè)定時(shí)間后再進(jìn)行后續(xù)網(wǎng)頁(yè)爬取任務(wù)調(diào)度。
      9.根據(jù)權(quán)利要求8所述的任務(wù)調(diào)度器,其中,所述狀態(tài)確定模塊包括: 獲取模塊,用于獲取所述各個(gè)數(shù)據(jù)中心的當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù); 確定模塊,用于根據(jù)所述當(dāng)前網(wǎng)頁(yè)爬取任務(wù)數(shù)和當(dāng)前網(wǎng)頁(yè)爬取工作進(jìn)程數(shù),確定所述各個(gè)數(shù)據(jù)中心的當(dāng)前任務(wù)積壓比例;當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于第一設(shè)定閾值,且小于第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為少量任務(wù)積壓;當(dāng)所述當(dāng)前任務(wù)積壓比例大于或等于所述第二設(shè)定閾值時(shí),則所述數(shù)據(jù)中心的當(dāng)前任務(wù)積壓狀態(tài)為大量任務(wù)積壓。
      10.根據(jù)權(quán)利要求8所述的任務(wù)調(diào)度器,其中,所述任務(wù)調(diào)度器還包括: 分配模塊,用于在所述狀態(tài)確定模塊確定各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的當(dāng)前任務(wù)積壓狀態(tài)之前,獲取所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的 網(wǎng)頁(yè)爬取權(quán)限,獲取各個(gè)數(shù)據(jù)中心組成的所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限;根據(jù)所述各個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,和所述所有數(shù)據(jù)中心的網(wǎng)絡(luò)爬蟲(chóng)的網(wǎng)頁(yè)爬取權(quán)限,按照設(shè)定規(guī)則為所述各個(gè)數(shù)據(jù)中心分配網(wǎng)頁(yè)爬取任務(wù)。
      【文檔編號(hào)】G06F17/30GK103559083SQ201310474045
      【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月11日 優(yōu)先權(quán)日:2013年10月11日
      【發(fā)明者】徐銳波, 付赟 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1