CN116668086A - 爬虫程序的调度方法、调度装置、服务器和存储介质 - Google Patents
爬虫程序的调度方法、调度装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN116668086A CN116668086A CN202310517799.0A CN202310517799A CN116668086A CN 116668086 A CN116668086 A CN 116668086A CN 202310517799 A CN202310517799 A CN 202310517799A CN 116668086 A CN116668086 A CN 116668086A
- Authority
- CN
- China
- Prior art keywords
- crawler
- performance
- data
- program
- scheduled
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 25
- 238000012544 monitoring process Methods 0.000 claims description 10
- 208000000044 Amnesia Diseases 0.000 claims description 2
- 208000026139 Memory disease Diseases 0.000 claims description 2
- 230000006984 memory degeneration Effects 0.000 claims description 2
- 208000023060 memory loss Diseases 0.000 claims description 2
- 238000009826 distribution Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种爬虫程序的调度方法、调度装置、服务器和存储介质。所述方法包括:获取代理节点的性能指标数据;其中,代理节点为用于执行待调度爬虫程序的网络节点,性能指标数据表征代理节点在当前运行状态下执行爬虫程序时的性能裕度;基于性能指标数据,确定代理节点分别执行多个待调度爬虫程序的性能损耗数据;其中,性能损耗数据表征代理节点在当前运行状态下执行爬虫程序时关于性能裕度的损耗程度;基于性能指标数据和性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将目标爬虫程序调度至代理节点。采用本方法能够增强对爬虫程序进行分配调度的合理性和有效性,提升执行爬虫程序时的执行效率和执行质量。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种爬虫程序的调度方法、爬虫程序的调度装置、服务器、存储介质和计算机程序产品。
背景技术
当前被开发的许多的网络业务系统需要执行多种多样的网络爬虫程序,当网络业务系统待执行的网络爬虫程序逐渐复杂且数量较多的时候就需要对各个网络爬虫程序进行分布式调度,以通过对网络爬虫程序的合理调度来减少代理节点执行网络爬虫程序时的如耗时久、负载大、以及错误率等问题。
在当前对网络爬虫程序进行分布式调度的方式中,由于仅仅是根据不同网络爬虫程序的大小和运行类型,来选择对应的代理节点来执行。因此,在代理节点的运行性能较差或者较优的情况下,对于各种网络爬虫程序无法给出合理的分布式调度,导致代理节点对不同的网络爬虫程序的执行效率不高以及执行质量不优。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升调度网络任务的合理性和执行效率的网络任务的处理方法、装置、服务器和存储介质。
根据本公开实施例的第一方面,提供一种网络任务的处理,包括:
获取代理节点的性能指标数据;所述性能指标数据表征所述代理节点在当前运行状态下用于执行爬虫程序的性能裕度;
基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据;所述性能损耗数据表征所述代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于所述性能裕度的损耗程度;
基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将所述目标爬虫程序调度至所述代理节点。
在一示例性实施例中,所述基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,包括:
基于所述性能指标数据与各所述待调度爬虫程序对应的性能损耗数据,确定所述代理节点在用于执行各所述待调度爬虫程序时的剩余性能裕度;所述剩余性能裕度表征所述性能裕度的剩余程度;
基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度,在所述多个待调度爬虫程序中确定出目标爬虫程序。
在一示例性实施例中,所述基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度,在所述多个待调度爬虫程序中确定出目标爬虫程序,包括:
在各所述待调度爬虫程序中,将对应所述剩余性能裕度大于所述参考性能裕度的待调度爬虫程序作为候选爬虫程序;
在所述候选爬虫程序中,确定预设数量个爬虫程序作为所述目标爬虫程序;
其中,所述预设数量个爬虫程序对应的约束条件包括:在所述代理节点同时执行所述预设数量个爬虫程序时所对应总剩余性能裕度大于所述参考性能裕度。
在一示例性实施例中,所述将所述目标爬虫程序调度至所述代理节点,包括:
确定所述目标爬虫程序的程序状态;
在所述程序状态表征所述目标爬虫程序未被所述代理节点执行的情况下,将所述目标爬虫程序调度至所述代理节点。
在一示例性实施例中,所述获取代理节点的性能指标数据,包括:
根据预设的时间间隔向所述代理节点发送心跳包信息,通过所述心跳包信息指示所述代理节点返回当前运行状态下的性能指标数据;
其中,所述性能指标数据至少包括所述代理节点的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
在一示例性实施例中,所述基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据,包括:
基于所述代理节点的配置参数,确定所述代理节点用于执行各个待调度爬虫程序时的运行数据;所述运行数据至少包括所述代理节点在用于执行各个待调度爬虫程序时的运行时长、内存占用量、磁盘占用量和执行线程数;
基于所述性能指标数据,将所述代理节点用于执行各个待调度爬虫程序时的所述运行数据转换为对应的性能损耗数据;所述性能损耗数据至少包括所述代理节点的处理器损耗率、处理器进程数、内存损耗率、网络带宽和磁盘使用率。
在一示例性实施例中,在所述将所述目标爬虫程序调度至所述代理节点之后,还包括:
获取所述代理节点在执行所述目标爬虫程序后的爬虫数据和所述目标爬虫程序的入参数据,并基于所述爬虫数据和入参数据生成对应爬虫统计图;
将所述爬虫统计图展现在爬虫监控界面中。
根据本公开实施例的第二方面,提供一种爬虫程序的调度装置,包括:
数据获取单元,被配置为执行获取代理节点的性能指标数据;所述性能指标数据表征所述代理节点在当前运行状态下用于执行爬虫程序的性能裕度;
损耗确定单元,被配置为执行基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据;所述性能损耗数据表征所述代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于所述性能裕度的损耗程度;
程序调度单元,被配置为执行基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将所述目标爬虫程序调度至所述代理节点。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如上述任一项所述的爬虫程序的调度方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中包括计算机程序,当所述计算机程序由服务器的处理器执行时,使得所述服务器能够执行如上述任一项所述的爬虫程序的调度方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品中包括程序指令,所述程序指令被服务器的处理器执行时,使得所述服务器能够执行如上述任一项所述的爬虫程序的调度方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
该方法先通过获取代理节点的性能指标数据;其中,性能指标数据表征代理节点在当前运行状态下用于执行爬虫程序的性能裕度;基于性能指标数据,预测代理节点用于执行各个待调度爬虫程序时的性能损耗数据;其中,性能损耗数据表征代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于性能裕度的损耗程度;最后,基于性能指标数据和性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将目标爬虫程序调度至所述代理节点。这样,一方面,区别于现有技术,先得到代理节点的性能指标数据,再得到待调度爬虫程序的性能损耗数据,以根据性能指标数据和性能损耗数据确定需要调度到对应代理节点的目标爬虫程序,从而优化了对爬虫程序的调度流程,加快了执行爬虫程序的处理效率;另一方面,基于代理节点的性能指标数据和执行爬虫程序时的性能损耗数据确定目标爬虫程序,以将目标爬虫程序调度至代理节点,从而增强了对爬虫程序进行分配调度的合理性和有效性,从而提升了执行爬虫程序的执行效率和执行质量。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种爬虫程序的调度方法的应用环境图。
图2是根据一示例性实施例示出的一种爬虫程序的调度方法的流程图。
图3是根据一示例性实施例示出的一种确定性能损耗数据步骤的流程图。
图4是根据一示例性实施例示出的一种确定目标爬虫程序步骤的流程图。
图5是根据一示例性实施例示出的一种将目标爬虫程序进行调度步骤的流程图。
图6是根据一示例性实施例示出的一种展现爬虫统计图的界面图。
图7是根据另一示例性实施例示出的一种爬虫程序的调度方法的流程图。
图8是根据一示例性实施例示出的一种用于爬虫程序的调度装置框图。
图9是根据一示例性实施例示出的一种用于爬虫程序的调度的服务器的框图。
图10是根据一示例性实施例示出的一种用于爬虫程序的调度的计算机可读存储介质的框图。
图11是根据一示例性实施例示出的一种用于爬虫程序的调度的计算机程序产品的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例中的术语“和/或”指的是包括相关联的列举项目中的一个或多个的任何和全部的可能组合。还要说明的是:当用在本说明书中时,“包括/包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件和/或组件和/或它们的组群的存在或添加。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供的爬虫程序的调度方法,可以应用于如图1所示的应用环境中。其中,代理节点102通过通信网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。
在一些实施例中,参考图1,服务器104首先获取代理节点的性能指标数据;其中,代理节点为用于执行待调度爬虫程序的网络节点,性能指标数据表征代理节点在当前运行状态下执行爬虫程序时的性能裕度;然后,服务器104再基于性能指标数据,确定代理节点分别执行多个待调度爬虫程序的性能损耗数据;其中,性能损耗数据表征代理节点在当前运行状态下执行爬虫程序时关于性能裕度的损耗程度;最后,服务器104基于性能指标数据和性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将目标爬虫程序调度至代理节点。
在一些实施例中,服务器104运行的数据处理组件可以加载正在被执行的可以包括各种附加服务器应用和/或中间层应用中的任何一种,如包括HTTP(超文本传输协议)、FTP(文件传输协议)、CGI(通用网关界面)、RDBMS(关系型数据库管理系统)等。
在一些实施例中,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104可以适于运行提供前述公开中描述的代理节点102的一个或多个应用服务或软件组件。
在一些实施例中,用户可以通过预设的输入装置或者自动控制程序向APP或者客户端输入相应的代码数据或者控制参数,以执行服务器104中的计算机程序的应用服务,以及显示用户界面中的应用服务。
在一些实施例中,APP或者客户端运行的操作系统可以包括各种版本的MicrosoftApple/>和/或Linux操作系统、各种商用或类/>操作系统(包括但不限于各种GNU/Linux操作系统、Google/>OS等)和/或移动操作系统,诸如Phone、/>OS、/>OS、/>OS操作系统,以及其它在线操作系统或者离线操作系统,在这里不做具体的限制。
在一些实施例中,如图2所示,提供了一种爬虫程序的调度方法,以该方法应用于图1中的服务器104为例进行说明,该方法包括以下步骤:
步骤S11,获取代理节点的性能指标数据。
在一实施例中,服务器配置各代理节点的“心跳机制”。其中,“心跳机制”为服务器按照预设的时间间隔向代理节点发送心跳包数据,并在代理节点运行正常的情况下,代理节点根据心跳包数据采集代理节点当前运行状态下的性能指标数据,以及将性能指标数据返回至服务器。
在一实施例中,性能指标数据至少包括代理节点在当前运行状态下的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
其中,服务器通过性能指标数据来表征代理节点在当前运行状态下用于执行爬虫程序的性能裕度。例如,关于处理器利用率的裕度、处理器进程数的裕度、内存利用率的裕度、网络带宽的裕度和磁盘使用率的裕度等。
作为示例,代理节点在当前运行状态下的处理器利用率为40%、处理器进程数为5(其处理器的总进程数为8)、内存利用率为60%、网络带宽使用率为50%和磁盘使用率为20%。因此代理节点在当前运行状态下的性能裕度包括处理器利用率的裕度为60%、处理器进程数的裕度为3、内存利用率的裕度为40%、网络带宽使用率的裕度为50%和磁盘使用率的裕度为80%。
在一实施例中,代理节点为应用于网络业务系统中执行待调度的网络爬虫程序的执行服务器。
其中,代理节点执行待调度的网络爬虫程序可应用于各种的任务调度场景,如,可应用于分布式任务的并发调度场景,包括各种网络爬虫场景、程序测试场景等。
在一个示例中,所述分布式任务可以为联邦学习任务,该联邦学习任务可以由多个任务组成,不同任务可以在不同的节点服务器上执行。其中,在分布式任务的并发调度场景中,由于资源具有分布、异构、动态、自治等特点,并发调度更加复杂,因此不同任务之间需要进行调度,以协同完成联邦学习任务。
在一些实施例中,网络爬虫程序可由网络工程师通过可视化界面或API的形式首先配置定时关于网络爬虫程序的程序信息,并将程序信息存储在数据库中;然后,服务器对请求传输来的网络爬虫程序的程序信息进行参数持久化,并通过后台调取网络爬虫程序的程序信息中的配置内容,最后,利用配置内容调用任务注册中心的API,以注册得到配置完成的网络爬虫程序。
在一些实施例中,程序信息包括待处理爬虫程序的程序参数、程序类型和对应的应用对象。在其他实施例中,程序信息还可以包括如与调度任务相关的程序编号、指定的代理节点编号、运行模式、调度任务编号等。
步骤S12:基于性能指标数据,预测代理节点用于执行各个待调度爬虫程序时的性能损耗数据。
在一实施例中,性能损耗数据表征代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于性能裕度的损耗程度,即待调度爬虫程序在被执行过程中需要占据代理节点的性能裕度的程度。
在一些实施例中,性能损耗数据至少包括代理节点执行爬虫程序时需要占据的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
在一种实施例中,服务器可以根据代理节点在当前状态下执行爬虫程序时关于处理器利用率的裕度、处理器进程数的裕度、内存利用率的裕度、网络带宽的裕度和磁盘使用率的裕度来预测代理节点在当前状态下执行爬虫程序时需要占据的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率,以确定代理节点的性能损耗数据。
在其他实施例中,服务器可以根据代理节点在上一次执行爬虫程序时需要使用的运行时长、需要占用的内存占用量、磁盘占用量和执行线程数来预测代理节点在本次执行爬虫程序时需要占据的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率,以确定代理节点的性能损耗数据。
步骤S13:基于性能指标数据和性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将目标爬虫程序调度至所述代理节点。
在一些实施例中,服务器基于性能指标数据分别与各待调度爬虫程序对应的性能损耗数据之间的差异,确定代理节点在执行各待调度爬虫程序时的剩余性能裕度。然后,再在各待调度爬虫程序中,将对应剩余性能裕度大于参考性能裕度的待调度爬虫程序作为候选爬虫程序。最后,在候选爬虫程序中,确定预设数量个爬虫程序作为目标爬虫程序。其中,预设数量个爬虫程序所对应总的剩余性能裕度大于参考性能裕度。
上述的爬虫程序的调度过程中,服务器首先通过获取代理节点的性能指标数据;其中,代理节点为用于执行待调度爬虫程序的网络节点,性能指标数据表征代理节点在当前运行状态下执行爬虫程序时的性能裕度;基于性能指标数据,确定代理节点分别执行多个待调度爬虫程序的性能损耗数据;其中,性能损耗数据表征代理节点在当前运行状态下执行爬虫程序时关于性能裕度的损耗程度;基于性能指标数据和性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将目标爬虫程序调度至代理节点。这样,一方面,区别于现有技术,先得到代理节点的性能指标数据,再得到待调度爬虫程序的性能损耗数据,以根据性能指标数据和性能损耗数据确定需要调度到对应代理节点的目标爬虫程序,从而优化了对爬虫程序的调度流程,加快了执行爬虫程序的处理效率;另一方面,基于代理节点的性能指标数据和执行爬虫程序时的性能损耗数据确定目标爬虫程序,以将目标爬虫程序调度至代理节点,从而增强了对爬虫程序进行分配调度的合理性和有效性,从而提升了执行爬虫程序的执行效率和执行质量。
在一些实施例中,服务器所在的master平台基于Scrapy-redis程序可实现对网络爬虫程序的分布式爬虫,同时也在Redis队列中对代理节点在执行各项目的爬虫程序时的性能损耗做缓存记录。例如,master平台将执行各项目的爬虫程序时的性能损耗缓存在Redis队列中,其中包括记录代理节点执行爬虫程序中的Request对象下载的时长,代理节点所需的内存、磁盘消耗、执行线程数等爬虫执行指标。其中,master平台根据缓存的性能损耗选择合适的代理节点执行节点调度和运行任务。
在一示例性实施例中,参阅图3,图3为本申请中确定性能损耗数据一实施例的流程示意图。在步骤S12中,服务器基于所述性能指标数据,确定所述代理节点分别执行多个待调度爬虫程序的性能损耗数据的方式,可以通过以下方式实现:
步骤S121,基于代理节点的配置参数,确定代理节点用于执行各个待调度爬虫程序时的运行数据。
在一些实施例中,配置参数包括代理节点的节点类型、运行逻辑、性能参数等配置。
在一些实施例中,运行数据至少包括代理节点在用于执行各个待调度爬虫程序时的运行时长、内存占用量、磁盘占用量和执行线程数。
在一些实施例中,服务器根据代理节点的配置参数,计算代理节点在分别执行多个待调度爬虫程序时的运行数据。例如,服务器根据代理节点的节点类型、运行逻辑、性能参数等配置,计算代理节点在执行待调度爬虫程序A时需要使用的运行时长A1、需要占用的内存占用量A2、磁盘占用量A3和执行线程数A4;计算代理节点在执行待调度爬虫程序B时需要使用的运行时长B1、需要占用的内存占用量B2、磁盘占用量B3和执行线程数B4;计算代理节点在执行待调度爬虫程序C时需要使用的运行时长C1、需要占用的内存占用量C2、磁盘占用量C3和执行线程数C4。
步骤S122,基于性能指标数据,将代理节点用于执行各个待调度爬虫程序时的运行数据转换为对应的性能损耗数据。
在一些实施例中,性能损耗数据至少包括代理节点执行爬虫程序时需要占据的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
在一些实施例中,服务器将代理节点的运行数据转换为与性能指标数据相同维度的性能损耗数据,即服务器可以基于运行数据的数据内容和性能指标数据的数据维度,将运行数据转换为性能损耗数据。
在一示例性实施例中,参阅图4,图4为本申请中确定目标爬虫程序一实施例的流程示意图。在步骤S13中,服务器基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序的过程,具体可以通过以下方式实现:
步骤S131,基于性能指标数据与各待调度爬虫程序对应的性能损耗数据,确定代理节点在用于执行各待调度爬虫程序时的剩余性能裕度。
在一些实施例中,剩余性能裕度表征代理节点在当前运行状态下执行爬虫程序时关于性能裕度的剩余程度。
在一示例性实施例中,性能指标数据可以表征代理节点在当前运行状态下执行爬虫程序时的性能裕度,以裕度P1表示,性能损耗数据可以表征代理节点在当前运行状态下执行爬虫程序时关于性能裕度的损耗程度,以裕度P2n表示,并且裕度P1大于裕度P2n,其中,n为待调度爬虫程序的编号。从而服务器计算裕度P1与各个裕度P2n之间的差,得到对应的裕度P3n,并将裕度P3n作为代理节点在执行各待调度爬虫程序时的剩余性能裕度。
步骤S132,基于各待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度,在多个待调度爬虫程序中确定出目标爬虫程序。
在一示例实施例中,slaver节点(即代理节点)根据master平台的通信端口发放节点性能指标监控信号。slaver节点由监控信号的参数执行自我检测,以将slaver节点当前状态的cpu利用率、cpu进程数、内存利用率、网络带宽、磁盘使用情况等执行器性能指标上传。以及,master平台为每台slaver节点的执行器设置健康阈值,当slaver节点的cpu负载、内存被占满等都会使得执行器出现无法操作、运行,占满磁盘将会导致执行器崩溃,网络环境差影响爬虫下载效率等问题,了解执行器的性能状况,可以充分合理分配资源、及时扩容。
在一些实施例中,服务器为每个代理节点设置了一个参考性能裕度,当代理节点在执行各待调度爬虫程序时的剩余性能裕度大于或者等于参考性能裕度时表征代理节点工作运行正常,当代理节点在执行各待调度爬虫程序时的剩余性能裕度小于参考性能裕度时表征代理节点工作运行异常。
在一示例性实施例中,在步骤S132中,服务器基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度之间的差异,在所述多个待调度爬虫程序中确定出目标爬虫程序的过程,具体可以通过以下方式实现:
步骤一,在各待调度爬虫程序中,将对应剩余性能裕度大于参考性能裕度的待调度爬虫程序作为候选爬虫程序。
步骤二,在候选爬虫程序中,确定预设数量个爬虫程序作为目标爬虫程序。
其中,确定的该预设数量个爬虫程序对应有约束条件,其包括:在代理节点同时执行预设数量个爬虫程序时所对应总剩余性能裕度大于参考性能裕度。
在一实施例中,一个代理节点可以同时执行一个或者多个爬虫程序,并且该一个或者多个爬虫程序所对应总的剩余性能裕度大于参考性能裕度。
作为示例,代理节点A的参考性能裕度为S1,候选爬虫程序中包括爬虫程序B1、爬虫程序B2、爬虫程序B3、爬虫程序B4。其中,代理节点A若同时执行爬虫程序B1和爬虫程序B2,其对应总的剩余性能裕度为S2;代理节点A若同时执行爬虫程序B2和爬虫程序B3,其对应总的剩余性能裕度为S3;代理节点A若同时执行爬虫程序B3和爬虫程序B4,其对应总的剩余性能裕度为S4。其中,S1小于S2、S3,以及S1大于S4,则爬虫程序B3和爬虫程序B4可以作为目标爬虫程序。
在一示例性实施例中,请参阅图5,图5为本申请中将目标爬虫程序进行调度一实施例的流程示意图。在步骤S132中,服务器将所述目标爬虫程序调度至所述代理节点的过程,具体可以通过以下方式实现:
步骤S133,确定目标爬虫程序的程序状态。
在一实施例中,程序信息包括目标爬虫程序的身份信息和版本信息,程序状态表征目标爬虫程序是否已被代理节点执行或者目标爬虫程序的程序版本是否为目标版本。其中,目标版本可以为待执行的爬虫程序是为最新版本的爬虫程序。
步骤S134,在程序状态表征目标爬虫程序未被代理节点执行的情况下,将目标爬虫程序调度至代理节点。
在一实施例中,在目标爬虫程序未被代理节点执行的情况下,服务器向代理节点发送关于目标爬虫程序的地址信息和授权信息,从而代理节点根据地址信息拉取到目标爬虫程序,以执行目标爬虫程序;在目标爬虫程序是目标版本的情况下,服务器向代理节点发送关于目标爬虫程序的地址信息和授权信息,从而代理节点根据地址信息拉取到目标爬虫程序,以执行目标爬虫程序。
在一示例性实施例中,slaver节点(即代理节点)接收到master平台分发的爬虫任务时,slaver节点通过通信接口的参数判断爬虫项目是否存在于自身执行器中或者根据爬虫项目的配置文件判断该爬虫项目是否为最新版本,然后,在爬虫项目是未在自身执行器中时,或者爬虫项目是不是最新版本时,则slaver节点从OSS服务器所提供的API接口中拉取出对应爬虫项目以执行爬虫任务。
在一示例性实施例中,请参阅图6,图6为本申请中展现爬虫统计图一实施例的界面示意图。在步骤S13之后,服务器在所述将所述目标爬虫程序调度至所述代理节点之后,具体可以通过以下方式实现:
步骤一,获取代理节点在执行目标爬虫程序后的爬虫数据和目标爬虫程序的入参数据,并基于爬虫数据和入参数据生成对应爬虫统计图。
步骤二,将爬虫统计图展现在爬虫监控界面中。
在一实施例中,服务器基于Scrapy程序开发的爬虫项目在Items继承scrapy.Item的数据类在管理平台做数据报表呈现;同时服务器对每个爬虫项目中存在的package文件解析初始化爬虫的入参信息(包括如登录爬虫所需的账号密码),从而可以在爬虫管理界面中编辑项目,以及做表单的呈现和存储。
在另一示例性实施例中,参阅图7,图7为本申请中爬虫程序的调度方法另一实施例的示意图,具体可以通过以下方式实现:
步骤S21:主服务器从每个爬虫项目的爬虫工程目录中读取出各爬虫项目的依赖包。
其中,该主服务器对应于上述实施例中的服务器104,爬虫项目对应于上述实施例中的网络爬虫程序。
步骤S22:主服务器将各爬虫项目,以及爬虫项目中各项目角色的权限分配、依赖包等配置存储在OSS对象中。
步骤S23:主服务器配置各服务器节点的“心跳机制”。
其中,“心跳机制”为服务器节点在运行正常的情况下,按照预设的时间间隔向主服务器返回心跳包数据。
其中,服务器节点对应于上述实施例中的代理节点。
步骤S24:主服务器根据服务器节点的心跳包数据,确定各个服务器节点的状态信息。
其中,状态信息包括在线状态和离线状态两种。
步骤S25:主服务器与状态信息为在线状态的服务器节点建立通信连接。
其中,主服务器与服务器节点之间基于主服务器向服务器节点开放的socket端口进行通信。
步骤S26:服务器节点通过master通信端口向主服务器发送关于自身性能指标的监控数据。
其中,性能指标的监控数据包括服务器节点当前状态的cpu利用率、cpu进程数、内存利用率、网络带宽、磁盘使用情况等执行器性能指标。
其中,每个服务器节点设置有关于监控数据的健康阈值。其中,当服务器节点的cpu负载、内存等在超出健康阈值时将会报警。
其中,该监控数据对应于上述实施例中的性能指标数据。健康阈值对应于上述实施例中的参考性能裕度。
步骤S27:主服务器根据各个服务器节点的监控数据,计算各个服务器节点在执行各爬虫项目时的性能损耗,并将性能损耗缓存记录在Redis中。
其中,服务器节点的性能损耗包括服务器节点下载Request对象的所需时间、运行Request对象的所需内存和磁盘消耗、执行线程数等爬虫执行指标。
其中,该性能损耗对应于上述实施例中的性能损耗数据。
步骤S28:主服务器根据各个服务器节点的性能损耗,确定每个服务器节点对应待执行的目标爬虫项目,并向每个服务器节点发送对应的目标爬虫项目的项目信息。
步骤S29:服务器节点根据项目信息,确定对应的目标爬虫项目是否已运行在服务器节点中或者服务器节点中执行的目标爬虫项目是否为最新版本的目标爬虫项目。
步骤S30:若目标爬虫项目未在服务器节点中运行,则服务器节点通过API接口从OSS对象中下载目标爬虫项目和对应的配置。
步骤S31:若服务器节点中执行的目标爬虫项目不为最新版本的目标爬虫项目,则服务器节点通过API接口从OSS对象中下载最新版本的目标爬虫项目和对应的配置。
其中,一个服务器节点可以下载和执行至少一个爬虫项目。
步骤S32:服务器节点通过Scrapy-redis运行目标爬虫项目,得到对应的爬虫数据。
其中,scrapy是一个基于redis的scrapy组件,用于快速实现scrapy项目(slaver爬虫项目)的分布式部署和数据爬取;
其中,scrapy-redis使用redis进行任务分发与调度,把所有待爬取的请求都放入redis,从而所有爬虫都去redis读取请求;
其中,在服务器节点运行slaver爬虫项目时,服务器节点得到爬虫项目在Items上继承scrapy.Item的数据类对象,并将数据类对象作为的爬虫数据。
步骤S33:主服务器将各个爬虫项目的资源包文件和爬虫数据存储到MYSQL数据库中。
步骤S34:在MYSQL数据库中,主服务器根据各爬虫项目的爬虫数据,生成对应的数据报表。
步骤S35:在MYSQL数据库中,主服务器对每个爬虫项目的资源包文件进行解析和初始化,得到各爬虫项目的入参信息。
其中,入参信息包括在录入爬虫项目时的账号和密码。
步骤S36:主服务器将各爬虫项目的数据报表和入参信息显示在管理平台中,并基于用户管理员的操作对数据报表和入参信息进行编辑与存储。
这样,一方面,区别于现有技术,先得到代理节点的性能指标数据,再得到待调度爬虫程序的性能损耗数据,以根据性能指标数据和性能损耗数据确定需要调度到对应代理节点的目标爬虫程序,从而优化了对爬虫程序的调度流程,加快了执行爬虫程序的处理效率;另一方面,基于代理节点的性能指标数据和执行爬虫程序时的性能损耗数据确定目标爬虫程序,以将目标爬虫程序调度至代理节点,从而增强了对爬虫程序进行分配调度的合理性和有效性,从而提升了执行爬虫程序的执行效率和执行质量。
应该理解的是,虽然图2-图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
图8是本申请实施例提供的一种爬虫程序的调度装置框图。参照图8,该爬虫程序的调度装置10包括:数据获取单元11、损耗确定单元12、程序调度单元13。
其中,数据获取单元11,被配置为执行获取代理节点的性能指标数据;所述代理节点为用于执行待调度爬虫程序的网络节点,所述性能指标数据表征所述代理节点在当前运行状态下执行爬虫程序时的性能裕度;
其中,损耗确定单元12,被配置为执行基于所述性能指标数据,确定所述代理节点分别执行多个待调度爬虫程序的性能损耗数据;所述性能损耗数据表征所述代理节点在当前运行状态下执行爬虫程序时关于所述性能裕度的损耗程度;
其中,程序调度单元13,被配置为执行基于所述性能指标数据和所述性能损耗数据,在所述多个待调度爬虫程序中确定目标爬虫程序,并将所述目标爬虫程序调度至所述代理节点。
在一些实施例中,在所述基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,该爬虫程序的调度装置10具体还用于:
基于所述性能指标数据分别与各所述待调度爬虫程序对应的性能损耗数据之间的差异,确定所述代理节点在执行各所述待调度爬虫程序时的剩余性能裕度;所述剩余性能裕度表征所述代理节点在当前运行状态下执行爬虫程序时关于所述性能裕度的剩余程度;
基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度之间的差异,在所述多个待调度爬虫程序中确定出目标爬虫程序。
在一些实施例中,所述基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度之间的差异,在所述多个待调度爬虫程序中确定出目标爬虫程序的方面,该爬虫程序的调度装置10具体还用于:
在各所述待调度爬虫程序中,将对应所述剩余性能裕度大于所述参考性能裕度的待调度爬虫程序作为候选爬虫程序;
在所述候选爬虫程序中,确定预设数量个爬虫程序作为所述目标爬虫程序;
其中,所述预设数量个爬虫程序所对应总的剩余性能裕度大于所述参考性能裕度。
在一些实施例中,在所述将所述目标爬虫程序调度至所述代理节点的方面,该爬虫程序的调度装置10具体还用于:
将所述目标爬虫程序的程序信息发送到对应的代理节点,以通过所述代理节点确定所述目标爬虫程序的程序状态;所述程序信息包括所述目标爬虫程序的身份信息和版本信息,所述程序状态表征所述目标爬虫程序是否已被所述代理节点执行或者所述目标爬虫程序的程序版本是否为目标版本;
在所述所述目标爬虫程序未被所述代理节点执行或者所述目标爬虫程序的程序版本是不为所述目标版本的情况下,将所述目标爬虫程序调度至所述代理节点。
在一些实施例中,所述所述获取代理节点的性能指标数据,该爬虫程序的调度装置10具体包括:
根据预设的时间间隔向所述代理节点发送心跳包信息,以基于所述心跳包信息指示所述代理节点返回当前运行状态下的性能指标数据;
其中,所述性能指标数据至少包括所述代理节点的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
在一些实施例中,在所述基于所述性能指标数据,确定所述代理节点分别执行多个待调度爬虫程序的性能损耗数据的方面,该爬虫程序的调度装置10具体还用于:
基于所述代理节点的配置参数,确定所述代理节点在分别执行所述多个待调度爬虫程序时的运行数据;所述运行数据至少包括所述代理节点在执行爬虫程序时的运行时长、内存占用量、磁盘占用量和执行线程数;
基于所述性能指标数据,对所述运行数据进行数据转换,得到所述多个待调度爬虫程序对应的性能损耗数据。
在一些实施例中,在所述将所述目标爬虫程序调度至所述代理节点之后,该爬虫程序的调度装置10具体还用于:
获取所述代理节点在执行所述目标爬虫程序后的爬虫数据和所述目标爬虫程序的入参数据,并基于所述爬虫数据和入参数据生成对应爬虫统计图;
将所述爬虫统计图展现在爬虫监控界面中。
图9是本申请实施例提供的一种服务器20的框图。例如,服务器20可以为一种电子设备、电子组件或者服务器阵列等等。参照图9,服务器20包括处理器21,其进一步处理器21可以为处理器集合,其可以包括一个或多个处理器,以及服务器20包括由存储器22所代表的存储器资源,其中,存储器22上存储有计算机程序,例如应用程序。在存储器22中存储的计算机程序可以包括一个或一个以上的每一个对应于一组可执行指令的模块。此外,处理器21被配置为执行计算机程序时实现如上述的爬虫程序的调度方法。
在一些实施例中,服务器20为电子设备,该电子设备中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。该服务器20还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关界面)服务器、超级服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器)等商购获得的数据库服务器。
在一些实施例中,处理器21通常控制服务器20的整体操作,诸如与显示、数据处理、数据通信和记录操作相关联的操作。处理器21可以包括一个或多个处理器组件来执行计算机程序,以完成上述的方法的全部或部分步骤。此外,处理器组件可以包括一个或多个模块,便于处理器组件和其他组件之间的交互。例如,处理器组件可以包括多媒体模块,以方便利用多媒体组件控制用户服务器20和处理器21之间的交互。
在一些实施例中,处理器21中的处理器组件还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器组件可能是一种电子芯片,具有信号的处理能力。处理器还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器组件等。另外,处理器组件可以由集成电路芯片共同实现。
在一些实施例中,存储器22被配置为存储各种类型的数据以支持在服务器20的操作。这些数据的示例包括用于在服务器20上操作的任何应用程序或方法的指令、采集数据、消息、图片、视频等。存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
在一些实施例中,存储器22可以为内存条、TF卡等,可以存储服务器20中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器22中。在一些实施例中,它根据处理器21指定的位置存入和取出信息。在一些实施例中,有了存储器22,服务器20才有记忆功能,才能保证正常工作。在一些实施例中,服务器20的存储器22按用途可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
在一些实施例中,服务器20还可以包括:电源组件23被配置为执行服务器20的电源管理,有线或无线网络接口24被配置为将服务器20连接到网络,和输入输出(I/O)接口25。服务器20可以操作基于存储在存储器22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在一些实施例中,电源组件23为服务器20的各种组件提供电力。电源组件23可以包括电源管理系统,一个或多个电源,及其他与为服务器20生成、管理和分配电力相关联的组件。
在一些实施例中,有线或无线网络接口24被配置为便于服务器20和其他设备之间有线或无线方式的通信。服务器20可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。
在一些实施例中,有线或无线网络接口24经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,有线或无线网络接口24还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一些实施例中,输入输出(I/O)接口25为处理器21和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
图10是本申请实施例提供的一种计算机可读存储介质30的框图。该计算机可读存储介质30上存储有计算机程序31,其中,计算机程序31被处理器执行时实现如上述的爬虫程序的调度方法。
在本申请各个实施例中的各功能单元集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质30中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机可读存储介质30在一个计算机程序31中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)、电子设备(例如MP3、MP4等,也可以是手机、平板电脑、可穿戴设备等智能终端,也可以是台式电脑等)或者处理器(processor)以执行本申请各个实施方式方法的全部或部分步骤。
图11是本申请实施例提供的一种计算机程序产品40的框图。该计算机程序产品40中包括程序指令41,该程序指令41可由服务器20的处理器执行以实现如上述的爬虫程序的调度方法。
本领域内的技术人员应明白,本申请的实施例可提供有爬虫程序的调度方法、爬虫程序的调度装置10、服务器20、计算机可读存储介质30或计算机程序产品40。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机程序指令41(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品40的形式。
本申请是参照根据本申请实施例中爬虫程序的调度方法、爬虫程序的调度装置10、服务器20、计算机可读存储介质30或计算机程序产品40的流程图和/或方框图来描述的。应理解可由计算机程序产品40实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序产品40到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的程序指令41产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序产品40也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机程序产品40中的程序指令41产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些程序指令41也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的程序指令41提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的,上述的各种方法、装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种爬虫程序的调度方法,其特征在于,所述方法包括:
获取代理节点的性能指标数据;所述性能指标数据表征所述代理节点在当前运行状态下用于执行爬虫程序的性能裕度;
基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据;所述性能损耗数据表征所述代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于所述性能裕度的损耗程度;
基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将所述目标爬虫程序调度至所述代理节点。
2.根据权利要求1所述的方法,其特征在于,所述基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,包括:
基于所述性能指标数据与各所述待调度爬虫程序对应的性能损耗数据,确定所述代理节点在用于执行各所述待调度爬虫程序时的剩余性能裕度;所述剩余性能裕度表征所述性能裕度的剩余程度;
基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度,在所述多个待调度爬虫程序中确定出目标爬虫程序。
3.根据权利要求2所述的方法,其特征在于,所述基于各所述待调度爬虫程序对应的剩余性能裕度与预设的参考性能裕度,在所述多个待调度爬虫程序中确定出目标爬虫程序,包括:
在各所述待调度爬虫程序中,将对应所述剩余性能裕度大于所述参考性能裕度的待调度爬虫程序作为候选爬虫程序;
在所述候选爬虫程序中,确定预设数量个爬虫程序作为所述目标爬虫程序;
其中,所述预设数量个爬虫程序对应的约束条件包括:在所述代理节点同时执行所述预设数量个爬虫程序时所对应总剩余性能裕度大于所述参考性能裕度。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标爬虫程序调度至所述代理节点,包括:
确定所述目标爬虫程序的程序状态;
在所述程序状态表征所述目标爬虫程序未被所述代理节点执行的情况下,将所述目标爬虫程序调度至所述代理节点。
5.根据权利要求1所述的方法,其特征在于,所述获取代理节点的性能指标数据,包括:
根据预设的时间间隔向所述代理节点发送心跳包信息,通过所述心跳包信息指示所述代理节点返回当前运行状态下的性能指标数据;
其中,所述性能指标数据至少包括所述代理节点的处理器利用率、处理器进程数、内存利用率、网络带宽和磁盘使用率。
6.根据权利要求5所述的方法,其特征在于,所述基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据,包括:
基于所述代理节点的配置参数,确定所述代理节点用于执行各个待调度爬虫程序时的运行数据;所述运行数据至少包括所述代理节点在用于执行各个待调度爬虫程序时的运行时长、内存占用量、磁盘占用量和执行线程数;
基于所述性能指标数据,将所述代理节点用于执行各个待调度爬虫程序时的所述运行数据转换为对应的性能损耗数据;所述性能损耗数据至少包括所述代理节点的处理器损耗率、处理器进程数、内存损耗率、网络带宽和磁盘使用率。
7.根据权利要求1所述的方法,其特征在于,在所述将所述目标爬虫程序调度至所述代理节点之后,还包括:
获取所述代理节点在执行所述目标爬虫程序后的爬虫数据和所述目标爬虫程序的入参数据,并基于所述爬虫数据和入参数据生成对应爬虫统计图;
将所述爬虫统计图展现在爬虫监控界面中。
8.一种爬虫程序的调度装置,其特征在于,所述装置包括:
数据获取单元,被配置为执行获取代理节点的性能指标数据;所述性能指标数据表征所述代理节点在当前运行状态下用于执行爬虫程序的性能裕度;
损耗确定单元,被配置为执行基于所述性能指标数据,预测所述代理节点用于执行各个待调度爬虫程序时的性能损耗数据;所述性能损耗数据表征所述代理节点在当前运行状态下用于执行各个待调度爬虫程序时关于所述性能裕度的损耗程度;
程序调度单元,被配置为执行基于所述性能指标数据和所述性能损耗数据,在多个待调度爬虫程序中确定目标爬虫程序,并将所述目标爬虫程序调度至所述代理节点。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1至7中任一项所述的爬虫程序的调度方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中包括计算机程序,其特征在于,当所述计算机程序由服务器的处理器执行时,使得所述服务器能够执行如权利要求1至7中任一项所述的爬虫程序的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517799.0A CN116668086B (zh) | 2023-05-09 | 2023-05-09 | 爬虫程序的调度方法、调度装置、服务器和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517799.0A CN116668086B (zh) | 2023-05-09 | 2023-05-09 | 爬虫程序的调度方法、调度装置、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116668086A true CN116668086A (zh) | 2023-08-29 |
CN116668086B CN116668086B (zh) | 2024-06-11 |
Family
ID=87719775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310517799.0A Active CN116668086B (zh) | 2023-05-09 | 2023-05-09 | 爬虫程序的调度方法、调度装置、服务器和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116668086B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130144858A1 (en) * | 2011-01-21 | 2013-06-06 | Google Inc. | Scheduling resource crawls |
CN111126733A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 爬取任务的分配方法及装置 |
CN112100471A (zh) * | 2020-09-07 | 2020-12-18 | 北京明略软件系统有限公司 | 分布式爬虫任务调度方法、装置、设备及计算机可读介质 |
CN114722258A (zh) * | 2021-01-04 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种网络爬虫调度方法、装置、设备及可读存储介质 |
CN115048564A (zh) * | 2022-08-15 | 2022-09-13 | 中国人民解放军国防科技大学 | 分布式爬虫任务调度方法、系统和设备 |
-
2023
- 2023-05-09 CN CN202310517799.0A patent/CN116668086B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130144858A1 (en) * | 2011-01-21 | 2013-06-06 | Google Inc. | Scheduling resource crawls |
CN111126733A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 爬取任务的分配方法及装置 |
CN112100471A (zh) * | 2020-09-07 | 2020-12-18 | 北京明略软件系统有限公司 | 分布式爬虫任务调度方法、装置、设备及计算机可读介质 |
CN114722258A (zh) * | 2021-01-04 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种网络爬虫调度方法、装置、设备及可读存储介质 |
CN115048564A (zh) * | 2022-08-15 | 2022-09-13 | 中国人民解放军国防科技大学 | 分布式爬虫任务调度方法、系统和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116668086B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487562B2 (en) | Rolling resource credits for scheduling of virtual computer resources | |
US11010197B2 (en) | Dynamic allocation of physical computing resources amongst virtual machines | |
US10783002B1 (en) | Cost determination of a service call | |
US9575749B1 (en) | Method and apparatus for execution of distributed workflow processes | |
WO2017167121A1 (zh) | 确定及运用应用程序之间的关系关联的方法及装置 | |
CN104620222A (zh) | 扩展虚拟机实例 | |
US11698813B2 (en) | Electronic device and method for managing computing resources of at least one cloud server for providing cloud service | |
US10133775B1 (en) | Run time prediction for data queries | |
KR20120102664A (ko) | 미래 사용 추정에 기반한 저장 메모리 할당 | |
US9851988B1 (en) | Recommending computer sizes for automatically scalable computer groups | |
CN111930525B (zh) | Gpu资源使用方法、电子设备及计算机可读介质 | |
US20100106436A1 (en) | Power consumption calculation facility | |
US11206673B2 (en) | Priority control method and data processing system | |
CN113238851B (zh) | 基于云平台的脚本自动化执行方法、系统、设备及介质 | |
US10789307B2 (en) | Cloud-based discovery and inventory | |
CN113986642A (zh) | 任务监控系统、方法、装置、电子设备和存储介质 | |
US20180249017A1 (en) | Data Usage Based Data Transfer Determination | |
US10691653B1 (en) | Intelligent data backfill and migration operations utilizing event processing architecture | |
WO2017092255A1 (zh) | 应用的在线调优方法及系统 | |
CN116668086B (zh) | 爬虫程序的调度方法、调度装置、服务器和存储介质 | |
US20230137673A1 (en) | Systems and methods for dynamically scaling remote resources | |
US10142208B1 (en) | Auto selection of applications based on resource capacity | |
US20240311347A1 (en) | Intelligent cloud portal integration | |
CN111522567B (zh) | 程序的升级方法、设备、系统和介质 | |
US20180240051A1 (en) | Generating a combined entity workflow |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |