[发明专利]一种任务队列生成方法、装置及设备在审
申请号: | 202011111238.3 | 申请日: | 2020-04-02 |
公开(公告)号: | CN112199175A | 公开(公告)日: | 2021-01-08 |
发明(设计)人: | 官砚楚;彭雪银;金戈 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/951;G06F16/955 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 申亚辉 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任务 队列 生成 方法 装置 设备 | ||
公开了一种任务队列生成方法、装置及设备。通过将需要爬取的待处理任务根据各自需要访问的主机进行哈希运算,并分配到预定义长度的N维数组中,然后从数组中的每个数组元素中分别取出一个待处理任务,并放入任务队列的端部,从而形成新的任务队列。
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种任务队列生成方法、装置及设备。
背景技术
在进行诸如批量取证、下载等任务时,经常需要利用到爬虫技术。例如,采用爬虫节点对于某个与证据相关的页面进行资料的爬取下载等等。在批量爬取的过程中,如果对于任务不做处理,就会经常会发生对于同一爬虫节点对于某个站点访问过于频繁而导致爬虫节点被封,进而影响资料的爬取,降低了爬取效率。
基于此,需要一种可以提高爬取效率的任务队列生成方案。
发明内容
本申请实施例的目的是提供一种可以提高爬取效率的任务队列生成方案。
为解决上述技术问题,本申请实施例是这样实现的:
一方面,本说明书实施例提供一种任务队列生成方法,包括:
获取多个待处理任务,其中,任一待处理任务中包含统一资源定位符URL;
针对任一待处理任务,确定其所包含的URL中的主机名,计算所述主机名的哈希值;
基于预定义的长度为N的数组,确定所述主机名的哈希值对所述长度N的余数;
将该待处理任务分配至所述数组中与所述余数对应的数组元素中,其中,所述数组元素用于存储待分配任务;
从所述数组的每个数组元素中各取出一个待处理任务,将取出的N个待处理任务,添加至当前的任务队列中的端部,生成新的任务队列。
另一方面,本说明书实施例还提供一种基于前述的任务队列的分配方法,包括:
针对任一任务处理节点,获取该任务处理节点的权重;
从所述任务队列的另一端依次取出待处理任务,根据各任务处理节点的权重将取出的待分类任务分配给各任务处理节点,其中,任务处理节点的权重与被分配到任务的概率正相关。
与一方面对应的,本说明书实施例还提供一种任务队列生成装置,包括:
获取模块,获取多个待处理任务,其中,任一待处理任务中包含统一资源定位符URL;
计算模块,针对任一待处理任务,确定其所包含的URL中的主机名,计算所述主机名的哈希值;
确定模块,基于预定义的长度为N的数组,确定所述主机名的哈希值对所述长度N的余数;
分配模块,将该待处理任务分配至所述数组中与所述余数对应的数组元素中,其中,所述数组元素用于存储待分配任务;
添加模块,从所述数组的每个数组元素中各取出一个待处理任务,将取出的N个待处理任务,添加至当前的任务队列中的端部,生成新的任务队列。
与另一方面对应的,本说明书实施例还提供一种基于权利前述的任务队列的分配装置,包括:
权重获取模块,针对任一任务处理节点,获取该任务处理节点的权重;
分配模块,从所述任务队列的另一端依次取出待处理任务,根据各任务处理节点的权重将取出的待分类任务分配给各任务处理节点,其中,任务处理节点的权重与被分配到任务的概率正相关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011111238.3/2.html,转载请声明来源钻瓜专利网。