[發明專利]控制網絡爬蟲的任務分配方法和裝置有效
| 申請號: | 201610243866.4 | 申請日: | 2016-04-18 |
| 公開(公告)號: | CN107305548B | 公開(公告)日: | 2020-02-28 |
| 發明(設計)人: | 楊杰 | 申請(專利權)人: | 北京國雙科技有限公司 |
| 主分類號: | G06F16/951 | 分類號: | G06F16/951 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 韓建偉;張永明 |
| 地址: | 100083 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 控制 網絡 爬蟲 任務 分配 方法 裝置 | ||
1.一種控制網絡爬蟲的任務分配方法,其特征在于,所述網絡爬蟲采用多線程執行任務,所述多線程預先存放于線程池內,所述方法包括:
通過信號量判斷所述多線程中的任務線程的數量是否達到任務最大并行數,其中,所述信號量的初始值為所述任務最大并行數;
在通過所述信號量判斷出所述多線程中的任務線程的數量達到所述任務最大并行數時,阻止所述線程池內的線程從URL隊列中獲取任務;以及
在通過所述信號量判斷出所述多線程中的任務線程的數量未達到所述任務最大并行數時,控制所述線程池內的線程從所述URL隊列中獲取任務;
其中,在通過所述信號量判斷出所述多線程中的任務線程的數量未達到所述任務最大并行數時,控制所述線程池內的線程從URL隊列中獲取任務之后,所述方法還包括:將所述信號量的值減1,
在所述任務線程的任務執行完成或取消時,所述方法還包括:將所述信號量的值加1。
2.根據權利要求1所述的方法,其特征在于,通過信號量判斷所述多線程中的任務線程的數量是否達到任務最大并行數包括:
判斷所述信號量的值是否為0;
在判斷出所述信號量的值為0時,則確定所述多線程中的任務線程的數量達到所述任務最大并行數;以及
在判斷出所述信號量的值不為0時,則確定所述多線程中的任務線程的數量未達到所述任務最大并行數。
3.根據權利要求1或2所述的方法,其特征在于,在通過所述信號量判斷出所述多線程中的任務線程的數量達到所述任務最大并行數時,阻止所述線程池內的線程從URL隊列中獲取任務之后,所述方法還包括:控制所述線程池內的線程進入等待狀態。
4.根據權利要求1或2所述的方法,其特征在于,在通過信號量判斷所述多線程中的任務線程的數量是否達到任務最大并行數之前,所述方法還包括:
在所述網絡爬蟲啟動時,從數據庫中讀取所述任務最大并行數,其中,所述數據庫中預先存儲有所述任務最大并行數;以及
將所述任務最大并行數賦值給所述信號量,并作為所述信號量的初始值。
5.一種控制網絡爬蟲的任務分配裝置,其特征在于,所述網絡爬蟲采用多線程執行任務,所述多線程預先存放于線程池內,所述裝置包括:
判斷單元,用于通過信號量判斷所述多線程中的任務線程的數量是否達到任務最大并行數,其中,所述信號量的初始值為所述任務最大并行數,所述任務線程為經過所述信號量的線程;
阻止單元,用于在通過所述信號量判斷出所述多線程中的任務線程的數量達到所述任務最大并行數時,阻止所述線程池內的線程從URL隊列中獲取任務;以及
第一控制單元,用于在通過所述信號量判斷出所述多線程中的任務線程的數量未達到所述任務最大并行數時,控制所述線程池內的線程從所述URL隊列中獲取任務;
其中,所述裝置還包括:減單元,用于在通過所述信號量判斷出所述多線程中的任務線程的數量未達到所述任務最大并行數時,控制所述線程池內的線程從URL隊列中獲取任務之后,將所述信號量的值減1,加單元,用于在所述任務線程的任務執行完成或取消時,將所述信號量的值加1。
6.根據權利要求5所述的裝置,其特征在于,所述判斷單元包括:
判斷模塊,用于判斷所述信號量的值是否為0;
第一確定模塊,用于在判斷出所述信號量的值為0時,則確定所述多線程中的任務線程的數量達到所述任務最大并行數;以及
第二確定模塊,用于在判斷出所述信號量的值不為0時,則確定所述多線程中的任務線程的數量未達到所述任務最大并行數。
7.根據權利要求5或6所述的裝置,其特征在于,所述裝置還包括:第二控制單元,用于在通過所述信號量判斷出所述多線程中的任務線程的數量達到所述任務最大并行數時,阻止所述線程池內的線程從URL隊列中獲取任務之后,控制所述線程池內的線程進入等待狀態。
8.根據權利要求5或6所述的裝置,其特征在于,所述裝置還包括:
讀取單元,用于在所述網絡爬蟲啟動時,從數據庫中讀取所述任務最大并行數,其中,所述數據庫中預先存儲有所述任務最大并行數;以及
賦值單元,用于將所述任務最大并行數賦值給所述信號量,并作為所述信號量的初始值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京國雙科技有限公司,未經北京國雙科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610243866.4/1.html,轉載請聲明來源鉆瓜專利網。





