CN110968420A - 一种多爬虫平台的调度方法、装置、存储介质及处理器 - Google Patents

一种多爬虫平台的调度方法、装置、存储介质及处理器 Download PDF

Info

Publication number
CN110968420A
CN110968420A CN201811162734.4A CN201811162734A CN110968420A CN 110968420 A CN110968420 A CN 110968420A CN 201811162734 A CN201811162734 A CN 201811162734A CN 110968420 A CN110968420 A CN 110968420A
Authority
CN
China
Prior art keywords
crawler
task
platforms
executed
subtasks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811162734.4A
Other languages
English (en)
Inventor
张志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201811162734.4A priority Critical patent/CN110968420A/zh
Publication of CN110968420A publication Critical patent/CN110968420A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种多爬虫平台的调度方法,获取至少一个待执行任务;对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。本发明高效利用多爬虫平台的能力,根据待执行任务的任务量对待执行任务进行合理分配,提高了任务的完成率和响应速度。

Description

一种多爬虫平台的调度方法、装置、存储介质及处理器
技术领域
本发明涉及互联网技术领域,更具体的,涉及一种多爬虫平台的调度方法、装置、存储介质及处理器。
背景技术
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。随着大数据分析等技术的兴起,利用爬虫平台爬取网络上的海量数据成为一种常用技术手段。
当需要爬取大量不同类型的数据时,需要同时生成多个爬取任务,现有技术中只是简单的将多个爬取任务发到一个爬虫平台,依赖于爬虫平台内部的调度能力执行爬取任务。当任务量很大时,多个爬取任务排队依次执行,一个爬虫平台往往无法高速完成所有爬取任务。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多爬虫平台的调度方法、装置、存储介质及处理器。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种多爬虫平台的调度方法,包括:
获取至少一个待执行任务;
对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
可选的,在获取待执行任务前,所述方法还包括:
向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
可选的,所述待执行任务包括爬取对象,则所述将子任务分配给可用的爬虫平台包括:
按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
可选的,所述方法还包括:
对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,所述统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值包括:
对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,每个待执行任务具有对应的优先级,则所述将子任务分配给可用的爬虫平台包括:
根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
可选的,当多个待执行任务具有相同的优先级时,所述将多个子任务分配给可用的爬虫平台包括:
对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或
将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
可选的,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述将多个子任务分配给可用的爬虫平台包括:
对子任务执行以下操作,直至全部子任务分配完毕:
将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;
根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
可选的,所述方法还包括:
监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
一种多爬虫平台的调度装置,包括:
获取单元,用于获取至少一个待执行任务;
分片单元,用于对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
分配单元,用于将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
可选的,所述装置还包括:
平台状态获取单元,用于向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
可选的,所述待执行任务包括爬取对象,则所述分配单元具体用于:按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
可选的,所述装置还包括:
能力参数统计单元,用于对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,所述能力参数统计单元,具体用于对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,每个待执行任务具有对应的优先级,则所述分配单元具体用于:根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
可选的,当多个待执行任务具有相同的优先级时,所述分配单元具体用于:对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
可选的,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述分配单元具体用于:对子任务执行以下操作,直至全部子任务分配完毕:将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
可选的,所述装置还包括:
监控单元,用于监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
一种存储介质,所述存储介质包括存储的程序,
其中,在所述程序运行时控制所述存储介质所在的设备执行如上述中任一项所述的多爬虫平台的调度方法。
一种处理器,所述处理器用于运行程序,
其中,所述程序运行时执行如上述中任一项所述的多爬虫平台的调度方法。
借由上述技术方案,本发明提供的多爬虫平台的调度方法,高效利用多爬虫平台的能力,根据待执行任务的任务量对待执行任务进行合理分配,提高了任务的完成率和响应速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例公开的一种多爬虫平台的调度方法流程示意图;
图2示出了本发明实施例公开的一种子任务分配方法流程示意图;
图3示出了本发明实施例公开的另一种子任务分配方法流程示意图;
图4示出了本发明实施例公开的一种多爬虫平台的调度装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,本实施例公开了一种多爬虫平台的调度方法,具体包括以下步骤:
S101:获取至少一个待执行任务;
对于每个待执行任务均执行以下操作:
S102:判断待执行任务的任务量是否大于预设值;
任务量表示爬虫平台在执行待执行任务时的总请求量,预设值表示爬虫平台的单次请求量。
若是,执行S103:对待执行任务进行分片得到多个子任务;
若否,执行S104:将待执行任务作为一个子任务;
可以理解的是,待执行任务的任务量有的较大,有的较小。对于任务量很小,即不大于预设值的待执行任务不需要进行分片;当待执行任务的任务量较大,即大于预设值的待执行任务可以根据爬取对象、关键词数量等指标对待执行任务进行分片。
爬取对象可以为搜索引擎,如百度、搜狗、360搜索等。
需要说明的是,每个子任务的任务量均小于等于预设值。
S105:将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度。
需要说明的是,可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
可选的,可以通过向各爬虫平台发送测试包的方式判断爬虫平台的状态是否正常,具体的,在向各爬虫平台发送测试包之后,根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
需要说明的是,在调度平台空闲,即没有待执行任务的时候,发送探测包。探测包实质上是一个爬取任务,用于测试爬虫平台的状态。其中,正常状态表示探测包的分片结果在正常时间范围内返回完毕且返回结果正常的状态;繁忙状态表示探测包分片结果没有在超时时间范围内返回完毕且返回结果正常的状态;异常状态表示探测包分片结果没有返回或返回结果异常的状态。
本实施例公开的多爬虫平台的调度方法,高效利用多爬虫平台的能力,根据待执行任务的任务量对待执行任务进行合理分配,提高了任务的完成率和响应速度。
为了更加合理的将子任务分配给可用的爬虫平台,本实施例提供了多种分配方法,其中,当待执行任务包括爬取对象时,请参阅图2,将子任务分配给可用的爬虫平台包括:
S201:按照当前时段对待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
S202:将多个子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
具体的,待执行任务中携带的信息可以包括:爬取对象,即要爬取的搜索引擎、爬取页数、爬取PC端还是移动端的数据、搜索关键字等。
需要说明的是,本实施例公开的多爬虫平台的调度方法还包括:对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。具体的,对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
还需要说明的是,周期性的统计每个爬虫平台的爬取能力参数值,爬取成功比例表示对于每个爬取对象在当前统计周期内爬取成功的任务占全部爬取任务的比例,爬取速率为对于每个爬取对象当前统计周期内所有爬取任务爬取速率的平均值。可以预先设定爬取成功比例的权重和爬取速率的权重,根据爬取成功比例的权重和爬取速率的权重计算每个正常状态爬虫平台的爬取能力参数值。
为了进一步阐述本实施例公开的技术方案,以下举例进行说明,例如有3个爬虫平台:A、B、C。
在要分配子任务对爬虫平台进行调度时,各爬虫平台提供给调度平台的配置信息如下(以A爬虫平台为例):
A:[{Weight:100,Times:10,TimeArea:02:00-06:00},{Weight:100,Times:10,TimeArea:06:01-20:00}]
其中,Weight表示权重,即对应一种爬取对象的爬取能力参数值,Times:10表示A还可以再接收的分片子任务数,TimeArea:02:00-06:00表示一个时间段。
在分配子任务的时候,按照爬虫平台的Weight权重从大到小的顺序向爬虫平台分配分片子任务,即,只有大的权重的爬虫平台的times=0了,才往下一个Weight权重的爬虫平台分配分片子任务。
上述为本实施例可选的一种实施方式,可以理解的是,本发明并不以此为限,根据每个正常状态爬虫平台的爬取能力参数值,还可以采取其他策略对所述多个子任务进行分配,但总体都应按照爬取能力强的爬虫平台多分配子任务,爬取能力弱的爬虫平台少分配子任务的原则。本实施例公开的多爬虫平台的调度方法,高效利用多爬虫平台的能力,根据每个爬虫平台的状态和爬取能力参数值,对待执行任务进行合理分配,提高了任务的完成率和响应速度。
在实际应用中,可能会出现待执行任务较多,无法同时执行所有待执行任务的情况,为了解决这一问题,本实施例公开了另一种多爬虫平台的调度方法。
当每个待执行任务具有对应的优先级时,将子任务分配给可用的爬虫平台包括:
根据每个待执行任务的优先级,按照优先级从高到低的顺序将待执行任务对应的子任务分配给可用的爬虫平台。
在此基础上,待执行任务中携带的信息可以包括:爬取对象,即要爬取的搜索引擎、爬取页数、爬取PC端还是移动端的数据、搜索关键字、优先级等。
待执行任务的优先级可以依据任务量的大小、业务端预先进行标记、任务类型三种方式中任意一种方式进行确定,也可以综合其中任意两种方式进行确定,还可以综合三种方式进行确定,当然,以上只是可选的几种确定待执行任务优先级的方式,本发明中确定待执行任务优先级的方式并不以此为限。
可以理解的是,先执行优先级高的待执行任务,再执行优先级低的待执行任务。优先级的划分可以为生成待执行任务时设定的。需要说明的是,当多个待执行任务具有相同的优先级时,所述将多个子任务分配给可用的爬虫平台包括:
对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
需要说明的是,本实施例公开的多爬虫平台的调度方法可以周期性的对接收到的待执行任务进行调度,具体的,在当前周期内接收到的任务,按照待执行任务的优先级分别将不同优先级的待执行任务放入相应的队列中,即一个队列存放同一优先级的待执行任务。对于每一个队列,当队列中有多个待执行任务时,按照接收待执行任务的时间存放待执行任务,在分配待执行任务时,采用先到先处理的方式,即队列里先进先出的方式分配待执行任务的子任务。还可以采用轮转方式分配子任务,即,对于相同优先级的各个待执行任务,轮着分配各个待执行任务的子任务。
本实施例公开的多爬虫平台的调度方法,采用优先级调度策略和轮转算法调度策略,解决了任务繁忙时,大任务阻塞小任务的问题,提高了任务的处理效率。
请参阅图3,当同时采用上述两种分配策略时,将子任务分配给可用的爬虫平台包括:
S301:判断当前多个待执行任务是否对应多个优先级;
若当前多个待执行任务对应多个优先级,执行S302:根据每个待执行任务的优先级,按照优先级从高到低的顺序将待执行任务对应的子任务分配给可用的爬虫平台;
S303:判断一个优先级是否对应多个待执行任务;
若当前多个待执行任务不对应多个优先级,或当前多个待执行任务对应多个优先级且一个优先级对应多个待执行任务时,执行S304:对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;
或执行S305:将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台;
对于以上各种情况下,对于每一个待执行任务执行S306:按照当前时段对待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
S307:将多个子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
还需要说明的是,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述将多个子任务分配给可用的爬虫平台包括:
对子任务执行以下操作,直至全部子任务分配完毕:
将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;
根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
可选的,所述方法还包括:
监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
本实施例公开的多爬虫平台的调度方法,通过对爬虫平台反馈结果进行监控,及时处理异常情况,提高了系统的可靠性。
基于上述实施例公开的一种多爬虫平台的调度方法,请参阅图2,本实施例对应公开了一种多爬虫平台的调度装置,包括:
获取单元401,用于获取至少一个待执行任务;
分片单元402,用于对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
分配单元403,用于将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
可选的,所述装置还包括:
平台状态获取单元,用于向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
可选的,所述待执行任务包括爬取对象,则所述分配单元具体用于:按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
可选的,所述装置还包括:
能力参数统计单元,用于对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,所述能力参数统计单元,具体用于对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
可选的,每个待执行任务具有对应的优先级,则所述分配单元具体用于:根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
可选的,当多个待执行任务具有相同的优先级时,所述分配单元具体用于:对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
可选的,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述分配单元具体用于:对子任务执行以下操作,直至全部子任务分配完毕:将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
可选的,所述装置还包括:
监控单元,用于监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
本实施例的多爬虫平台的调度装置,高效利用多爬虫平台的能力,根据待执行任务的任务量对待执行任务进行合理分配,提高了任务的完成率和相应速度。
同时,采用优先级调度策略和轮转算法调度策略,解决了任务繁忙时,大任务阻塞小任务的问题,提高了任务的处理效率。
监控单元实时监控每个爬虫平台的爬取结果,及时调整任务分配,保证了任务完成的可靠性和任务完成速度。
所述多爬虫平台的调度装置包括处理器和存储器,上述获取单元、分片单元和分配单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高任务的处理效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述多爬虫平台的调度方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述多爬虫平台的调度方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取至少一个待执行任务;
对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
进一步,在获取待执行任务前,所述方法还包括:
向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
进一步,所述待执行任务包括爬取对象,则所述将子任务分配给可用的爬虫平台包括:
按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
进一步,所述方法还包括:
对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
进一步,所述统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值包括:
对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
进一步,每个待执行任务具有对应的优先级,则所述将子任务分配给可用的爬虫平台包括:
根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
进一步,当多个待执行任务具有相同的优先级时,所述将多个子任务分配给可用的爬虫平台包括:
对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或
将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
进一步,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述将多个子任务分配给可用的爬虫平台包括:
对子任务执行以下操作,直至全部子任务分配完毕:
将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;
根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
进一步,所述方法还包括:
监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取至少一个待执行任务;
对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
进一步,在获取待执行任务前,所述方法还包括:
向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
进一步,所述待执行任务包括爬取对象,则所述将子任务分配给可用的爬虫平台包括:
按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
进一步,所述方法还包括:
对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
进一步,所述统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值包括:
对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
进一步,每个待执行任务具有对应的优先级,则所述将子任务分配给可用的爬虫平台包括:
根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
进一步,当多个待执行任务具有相同的优先级时,所述将多个子任务分配给可用的爬虫平台包括:
对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或
将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
进一步,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述将多个子任务分配给可用的爬虫平台包括:
对子任务执行以下操作,直至全部子任务分配完毕:
将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;
根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
进一步,所述方法还包括:
监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种多爬虫平台的调度方法,其特征在于,包括:
获取至少一个待执行任务;
对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
2.根据权利要求1所述的方法,其特征在于,在获取待执行任务前,所述方法还包括:
向各爬虫平台发送测试包;
根据各爬虫平台对测试包的反馈结果,确认各爬虫平台的状态;一个爬虫平台的状态为如下状态之一:正常,繁忙,异常。
3.根据权利要求1所述的方法,其特征在于,所述待执行任务包括爬取对象,则所述将子任务分配给可用的爬虫平台包括:
按照当前时段对所述待执行任务中爬取对象的爬取能力参数值,对可用的爬虫平台进行排序得到可用序列;
将多个所述子任务按照可用序列中爬取能力参数值由大到小的顺序进行分配。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对每个爬虫平台,统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
5.根据权利要求4所述的方法,其特征在于,所述统计该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值包括:
对于各个时间段,按爬取对象对该爬虫平台的爬取成功比例和爬取速率进行统计,得到该爬虫平台对于每种爬取对象在各个时间段的爬取能力参数值。
6.根据权利要求1所述的方法,其特征在于,每个待执行任务具有对应的优先级,则所述将子任务分配给可用的爬虫平台包括:
根据每个待执行任务的优先级,按照优先级从高到低的顺序将所述待执行任务对应的子任务分配给可用的爬虫平台。
7.根据权利要求6所述的方法,其特征在于,当多个待执行任务具有相同的优先级时,所述将多个子任务分配给可用的爬虫平台包括:
对具有相同优先级的待执行任务采用先到先处理的方式,将对应的子任务分配给可用的爬虫平台;或
将具有相同优先级的待执行任务对应的子任务采用轮转方式分配给可用的爬虫平台。
8.根据权利要求1-7任一项所述的方法,其特征在于,当子任务的数量大于所有可用爬虫平台的可处理任务数总数时,所述将多个子任务分配给可用的爬虫平台包括:
对子任务执行以下操作,直至全部子任务分配完毕:
将小于等于可处理任务数总数的子任务分配给可用的爬虫平台;
根据可用的爬虫平台的反馈结果,更新可用的爬虫平台。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
监控分配有子任务的爬虫平台的反馈结果;
当反馈结果为异常时,将异常的反馈结果对应的子任务重新分配给其他可用的爬虫平台。
10.一种多爬虫平台的调度装置,其特征在于,包括:
获取单元,用于获取至少一个待执行任务;
分片单元,用于对每个待执行任务:若所述待执行任务的任务量大于预设值,则对所述待执行任务进行分片得到多个子任务;若所述待执行任务的任务量小于等于预设值,则将所述待执行任务作为一个子任务;每个子任务的任务量均小于等于预设值;
分配单元,用于将所述子任务分配给可用的爬虫平台,完成对爬虫平台的调度;所述可用的爬虫平台包括状态为正常且可处理任务数不为0的爬虫平台。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,
其中,在所述程序运行时控制所述存储介质所在的设备执行如权利要求1-9中任一项所述的多爬虫平台的调度方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,
其中,所述程序运行时执行如权利要求1-9中任一项所述的多爬虫平台的调度方法。
CN201811162734.4A 2018-09-30 2018-09-30 一种多爬虫平台的调度方法、装置、存储介质及处理器 Pending CN110968420A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811162734.4A CN110968420A (zh) 2018-09-30 2018-09-30 一种多爬虫平台的调度方法、装置、存储介质及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811162734.4A CN110968420A (zh) 2018-09-30 2018-09-30 一种多爬虫平台的调度方法、装置、存储介质及处理器

Publications (1)

Publication Number Publication Date
CN110968420A true CN110968420A (zh) 2020-04-07

Family

ID=70029343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811162734.4A Pending CN110968420A (zh) 2018-09-30 2018-09-30 一种多爬虫平台的调度方法、装置、存储介质及处理器

Country Status (1)

Country Link
CN (1) CN110968420A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708627A (zh) * 2020-06-22 2020-09-25 中国平安财产保险股份有限公司 基于分布式调度框架的任务调度方法以及装置
WO2023221370A1 (zh) * 2022-05-19 2023-11-23 北京百度网讯科技有限公司 批量任务处理的方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662743A (zh) * 2012-04-13 2012-09-12 南京信息工程大学 一种启发式粗粒度并行网格任务调度方法
CN105760240A (zh) * 2014-12-16 2016-07-13 航天信息股份有限公司 分布式任务处理方法及装置
CN106934027A (zh) * 2017-03-14 2017-07-07 深圳市博信诺达经贸咨询有限公司 分布式爬虫实现方法及系统
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN107729139A (zh) * 2017-09-18 2018-02-23 北京京东尚科信息技术有限公司 一种并发获取资源的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662743A (zh) * 2012-04-13 2012-09-12 南京信息工程大学 一种启发式粗粒度并行网格任务调度方法
CN105760240A (zh) * 2014-12-16 2016-07-13 航天信息股份有限公司 分布式任务处理方法及装置
CN106934027A (zh) * 2017-03-14 2017-07-07 深圳市博信诺达经贸咨询有限公司 分布式爬虫实现方法及系统
CN107729139A (zh) * 2017-09-18 2018-02-23 北京京东尚科信息技术有限公司 一种并发获取资源的方法和装置
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708627A (zh) * 2020-06-22 2020-09-25 中国平安财产保险股份有限公司 基于分布式调度框架的任务调度方法以及装置
CN111708627B (zh) * 2020-06-22 2023-06-20 中国平安财产保险股份有限公司 基于分布式调度框架的任务调度方法以及装置
WO2023221370A1 (zh) * 2022-05-19 2023-11-23 北京百度网讯科技有限公司 批量任务处理的方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN106406987B (zh) 一种集群中的任务执行方法及装置
US20170329643A1 (en) Distributed node intra-group task scheduling method and system
CN110474852B (zh) 一种带宽调度方法及装置
CN111768006A (zh) 一种人工智能模型的训练方法、装置、设备及存储介质
CN105988872A (zh) 一种cpu资源分配的方法、装置及电子设备
US20090178042A1 (en) Managing A Workload In A Database
CN112256417B (zh) 一种数据请求处理方法、装置及计算机可读存储介质
CN109710414A (zh) 一种作业调度方法、装置、设备及存储介质
US10305974B2 (en) Ranking system
CN105022668B (zh) 一种作业调度方法及系统
Petrov et al. Adaptive performance model for dynamic scaling Apache Spark Streaming
CN112579263A (zh) 任务执行方法及装置、存储介质及电子设备
Choi et al. An enhanced data-locality-aware task scheduling algorithm for hadoop applications
CN114629960B (zh) 资源调度方法、装置、系统、设备、介质和程序产品
CN110968420A (zh) 一种多爬虫平台的调度方法、装置、存储介质及处理器
CN106775975B (zh) 进程调度方法及装置
CN111709723A (zh) Rpa业务流程智能处理方法、装置、计算机设备和存储介质
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
CN110188258B (zh) 使用爬虫获取外部数据的方法及装置
CN115712501A (zh) 一种适用于工程机械的云仿真方法和系统
CN110928649A (zh) 资源调度的方法和装置
CN111580937B (zh) 一种面向飞腾多核/众核混合集群的虚拟机自动调度方法
CN113127289B (zh) 一种基于yarn集群的资源管理方法、计算机设备和存储介质
CN112685158A (zh) 一种任务调度方法、装置、电子设备及存储介质
CN112540842A (zh) 动态调整系统资源的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200407