CN115774564A - 任务处理方法、装置及电子设备 - Google Patents
任务处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115774564A CN115774564A CN202211372611.XA CN202211372611A CN115774564A CN 115774564 A CN115774564 A CN 115774564A CN 202211372611 A CN202211372611 A CN 202211372611A CN 115774564 A CN115774564 A CN 115774564A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- target
- client
- cache pool
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 60
- 230000009471 action Effects 0.000 claims abstract description 16
- 238000012545 processing Methods 0.000 claims description 64
- 230000000875 corresponding effect Effects 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000002596 correlated effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种任务处理方法、装置及电子设备。其中,该方法包括:获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。本申请解决了现有技术中执行多个爬虫框架中的代码时存在管理困难的技术问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种任务处理方法、装置及电子设备。
背景技术
目前很多常用的爬虫框架,例如scrapy、crawllab等框架都需要约定采集代码的编写,从请求到清洗到入库必须约定写法,框架不够轻量,很多框架在底层依然是基于scrapy,爬虫请求采集过程中各个网站都会有各式各样的问题,而基于scrapy爬虫框架的写法在执行时不够便捷,且多个项目使用爬虫框架时存在管理困难的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种任务处理方法、装置及电子设备,以至少解决现有技术中执行多个爬虫框架中的代码时存在管理困难的技术问题。
根据本申请实施例的一个方面,提供了一种任务处理方法,包括:获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
可选地,获取多个任务之后,方法还包括:依据配置信息分别对多个任务进行配置,得到多个第一任务,其中,配置信息包括以下至少之一:任务名称、多个任务中每个任务所需的并发数;从多个第一任务中确定第二任务,其中,第二任务为多个第一任务中的任意一个任务;至少依据第二任务的任务名称判断第二任务是否存在缓存池中;在缓存池中不存在第二任务时,将第二任务发送至缓存池中。
可选地,并发数至少依据多个第一任务的优先级确定,且并发数的数量与优先级呈正相关。
可选地,将目标任务分配给调用请求所请求调用的客户端,包括:依据调用请求中的目标任务名称,查询缓存池中是否存在与目标任务名称一致的任务;在缓存池中存在与目标任务名称一致的任务时,将与目标任务名称一致的任务作为目标任务分配给调用请求所请求调用的客户端。
可选地,确定多个任务的任务执行状态,包括:在多个任务中的任务执行状态存在目标状态时,依据目标状态所对应任务的配置信息,为目标状态所对应任务分配资源,其中,目标状态用于表征任务开始执行。
可选地,依据任务执行状态确定与任务执行状态对应的动作,包括:在任务执行状态为第一状态时,将第一任务结果存入数据库中,其中,第一任务结果用于指示任务执行成功;在任务执行状态为第二状态时,将第二任务结果存入数据库中,其中,第二任务结果用于指示任务执行失败;在预设时间内未收到任务执行状态时,将第三任务结果发送给目标对象,其中,第三任务结果用于指示未收到任务执行状态。
可选地,方法还包括:获取多个任务在执行过程中的提示信息,其中,提示信息用于表征多个任务在执行过程中采集的数据为特殊数据;在接收到提示信息的情况下,获取特殊数据以及特殊数据所需的参数;依据特殊数据所需的参数对特殊数据进行处理后,将处理结果返回给客户端。
根据本申请实施例的另一方面,还提供了一种任务处理方法,包括:监控缓存池中的任务;在缓存池中存在任务时,向服务器发送调用请求,其中,调用请求用于调用缓存池中的至少一个任务,每个任务为与爬虫框架中的每套代码对应的任务,每个爬虫框架包括多套代码;接收服务器依据调用请求分配的目标任务,其中,目标任务为缓存池中的至少一个任务;执行目标任务,并将目标任务的任务执行状态发送给服务器。
可选地,执行目标任务,包括:在目标任务所采集的数据为特殊数据的情况下,将特殊数据以及特殊数据所需的参数发送给服务器;接收服务器返回的与特殊数据对应的处理结果,依据处理结果采集特殊数据。
根据本申请实施例的又一方面,还提供了一种任务处理装置,包括:获取模块,用于获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收模块,用于接收客户端发送的调用请求;分配模块,用于依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定模块,用于确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
根据本申请实施例的再一方面,还提供了一种电子设备,包括:存储器,用于存储程序指令;处理器,与存储器连接,用于执行实现以下功能的程序指令:获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行上述任务处理方法。
在本申请实施例中,通过获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作,达到了自动管理任务状态的目的,从而实现了提高运行效率的技术效果,进而解决了现有技术中执行多个爬虫框架中的代码时存在管理困难的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现任务处理方法的计算机终端(或电子设备)的硬件结构框图;
图2是根据本申请实施例的一种任务处理方法的流程图;
图3是根据本申请实施例的另一种任务处理方法的流程图;
图4是根据本申请实施例的一种任务处理装置的结构图;
图5是根据本申请实施例的另一种任务处理装置的结构图;
图6是根据本申请实施例的一种任务处理过程的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的任务处理方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现任务处理方法的计算机终端(或电子设备)的硬件结构框图。如图1所示,计算机终端10(或电子设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或电子设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的任务处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的任务处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或电子设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。
在上述运行环境下,本申请实施例提供了一种任务处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的一种任务处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S202,获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务。
在上述步骤S202中,服务器通过获取注册的多个任务,该多个任务可以指爬虫框架中的多套代码,每套代码分别对应一个任务,在本申请实施例中,一个爬虫框架可以嵌入多个任务多套代码,且在框架中不约束代码的写法。
步骤S204,接收客户端发送的调用请求。
步骤S206,依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务。
在上述步骤S204至步骤S206中,服务器在获取多个任务之后,对获取的多个任务进行配置,若服务器接收到客户端发送的调用任务的请求,则服务器可以通过配置各个不同时间段对调度任务的自动分发,实现将目标任务分配给所请求调用的客户端的目的,需要说明的是,客户端可以请求调用一个任务,也可以同时调用多个任务,服务器在判断任务存在后,可将对应的任务分配给请求调用的客户端。
步骤S208,确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
在上述步骤S208中,服务器通过监控多个任务的任务执行状态,确认任务的进行过程、完成数量等,并根据任务执行状态执行与任务执行状态对应的动作,例如,在任务执行状态为成功时,保存任务处理结果,在任务执行状态为失败时,将失败任务通知给客户端以及开发人员等。
在上述任务处理方法中的步骤S202中,获取多个任务之后,方法还包括如下步骤:依据配置信息分别对多个任务进行配置,得到多个第一任务,其中,配置信息包括以下至少之一:任务名称、多个任务中每个任务所需的并发数;从多个第一任务中确定第二任务,其中,第二任务为多个第一任务中的任意一个任务;至少依据第二任务的任务名称判断第二任务是否存在缓存池中;在缓存池中不存在第二任务时,将第二任务发送至缓存池中。
在本申请实施例中,服务器在对任务进行配置时,可以配置任务名称,例如,服务器可将多个任务分别命名为任务1、任务2、任务3等,也可按照其他命名方式进行命名,具体可根据实际情况设置,此处不做限定,但需保证各个任务的名称不同,从而在客户端调用任务时、以及服务器分配任务时可通过任务名称进行区分,可选地,上述任务名称也可用任务ID表示。
另外,服务器在对任务配置时,还需要配置每个任务所需的并发数,该并发数的数量可以影响该任务在执行过程中的数据采集效率,每个任务所需的并发数与数据采集效率呈正相关,具体地,服务器为任务设置的并发数越多,则该任务在执行过程中所对应的数据采集效率越高,反之,服务器为任务设置的并发数越少,则该任务在执行过程中所对应的数据采集效率越低。
可选地,服务器在对任务进行配置时,还需要设置任务被调度时的程序,例如,设定多长时间运行一次该任务等,在配置好上述的任务名称、任务所需的并发数、任务调度的程序等之后,即可得到多个第一任务,该第一任务指已被服务器配置过的任务,在配置好任务后,需将配置好的任务放入缓存池中,具体过程如下:从上述多个第一任务中任取一个任务作为第二任务,通过第二任务的任务名称确定该任务是否在缓存池中,也即将第二任务的任务名称与缓存池中存在的所有任务的任务名称进行匹配,若匹配成功,则认为缓存池中存在该第二任务,则对当前获取的第二任务不做任何处理,并获取多个第一任务中的其他任意一个任务,判断其他任意一个任务是否在缓存池中;若匹配失败,则认为缓存池中不存在该第二任务,则服务器将该第二任务发送至缓存池中。
在上述任务处理方法中,并发数至少依据多个第一任务的优先级确定,且并发数的数量与优先级呈正相关。
在本申请实施例中,服务器在对任务进行并发数配置的过程中,可获取每个任务的任务优先级,根据任务优先级为该任务设置对应的并发数,且并发数的数量与任务优先级呈正相关,具体地,该任务的任务优先级越高,服务器在配置过程中设置的并发数越多,反之,该任务的任务优先级越低,则服务器在配置过程中可设置较少的并发数,具体的优先级与并发数的对应关系可根据实际需求设置,此处不再赘述。
在上述任务处理方法中的步骤S206中,将目标任务分配给调用请求所请求调用的客户端,具体包括如下步骤:依据调用请求中的目标任务名称,查询缓存池中是否存在与目标任务名称一致的任务;在缓存池中存在与目标任务名称一致的任务时,将与目标任务名称一致的任务作为目标任务分配给调用请求所请求调用的客户端。
在本申请实施例中,客户端若想调用任务,则需先向服务器发送调用请求,服务器接收到客户端发送的调用请求后,根据调用请求中所请求调用任务的任务名称,即上述目标任务名称,查询目标任务名称是否存在于缓存池中,当目标任务名称存在于缓存池中,也即在缓存池中可以匹配到与目标任务名称一致的任务时,则服务器将与目标任务名称一致的任务作为目标任务分配给调用请求所请求调用的客户端。若缓存池中不存在与目标任务名称一致的任务,则向客户端发送调用请求的响应消息,该响应消息用于通知客户端缓存池中不存在该任务,任务调用失败。
在另一种可选的实施例中,客户端可直接监控缓存池中的任务,若缓存池中存在任务,则直接调用缓存池中的任务,而无需经过服务器,例如,客户端配置好任务1和任务2后,将任务1和任务2放入缓存池中,客户端通过监控缓存池,监控到任务1和任务2存在于缓存池中,则直接调用缓存池中的任务1和任务2,并执行任务1和任务2对应的爬虫代码。
在上述任务处理方法中的步骤S208中,确定多个任务的任务执行状态,具体包括如下步骤:在多个任务中的任务执行状态存在目标状态时,依据目标状态所对应任务的配置信息,为目标状态所对应任务分配资源,其中,目标状态用于表征任务开始执行。
在本申请实施例中,多个任务在不同阶段对应不同的状态,例如,任务执行状态为任务开始执行时,确定该任务的状态为目标状态;在任务执行状态为执行成功时,确定该任务的状态为第一状态;在任务执行状态为执行失败时,确定该任务的状态为第二状态。在任务执行状态为开始执行的目标状态时,服务器获取该目标状态所对应任务的配置信息,该配置信息至少包括该目标状态所对应任务的并发数,服务器根据该并发数为目标任务所对应任务分配资源。
在上述任务处理方法中的步骤S208中,依据任务执行状态确定与任务执行状态对应的动作,具体包括如下步骤:在任务执行状态为第一状态时,将第一任务结果存入数据库中,其中,第一任务结果用于指示任务执行成功;在任务执行状态为第二状态时,将第二任务结果存入数据库中,其中,第二任务结果用于指示任务执行失败;在预设时间内未收到任务执行状态时,将第三任务结果发送给目标对象,其中,第三任务结果用于指示未收到任务执行状态。
在本申请实施例中,服务器会监控多个任务的任务执行状态,也即监控缓存池中的任务执行状态,在确定任务执行状态为任务执行成功时,将任务执行成功的结果(即第一任务结果)存入数据库中;在确定任务执行状态为任务执行失败时,将任务执行失败的结果(即第二任务结果)存入数据库中。在上述确定任务执行状态为第一状态或第二状态时,均认为服务器获取到了任务执行状态,也表示任务执行状态获取正常,在另一种可选的实施例中,若服务器在预设时间内未获取到任务执行状态时,则认为任务状态获取失败,此时将未收到任务执行状态的结果(即第三任务结果)发送给目标对象,该目标对象可以为开发人员,同时将第三任务结果存入数据库中。
在上述任务处理方法中,该方法还包括如下步骤:获取多个任务在执行过程中的提示信息,其中,提示信息用于表征多个任务在执行过程中采集的数据为特殊数据;在接收到提示信息的情况下,获取特殊数据以及特殊数据所需的参数;依据特殊数据所需的参数对特殊数据进行处理后,将处理结果返回给客户端。
在本申请实施例中,上述特殊数据例如可以为加密数据或解密数据等,在客户端执行任务时,若采集的数据为加密数据的情况下,需要获取该加密数据所需的参数,该加密数据以及加密数据所需的参数通过提示信息发送给服务器,服务器实时监控任务状态,并在接收到该提示信息后,获取该特殊数据所需的参数,并依据该特殊数据所需的参数对该特殊数据进行处理后,例如运行本地的加解密代码等,得到处理结果,将处理结果返回给客户端,该特殊数据所需的参数例如可以为与加密数据对应的参数,也可以为解密数据对应的参数,服务器通过对特殊数据处理后,将处理结果返回给客户端,以供客户端正常采集特殊数据。
图3是根据本申请实施例的另一种任务处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,监控缓存池中的任务;
步骤S304,在缓存池中存在任务时,向服务器发送调用请求,其中,调用请求用于调用缓存池中的至少一个任务,每个任务为与爬虫框架中的每套代码对应的任务,每个爬虫框架包括多套代码;
步骤S306,接收服务器依据调用请求分配的目标任务,其中,目标任务为缓存池中的至少一个任务;
步骤S308,执行目标任务,并将目标任务的任务执行状态发送给服务器。
在上述步骤S302至步骤S308中,客户端实时监控缓存池中的任务,若监测到缓存池中存在任务时,则向服务器发送调用请求,服务器在确定客户端调用请求对应的任务存在于缓存池中后,将对应的任务分配给客户端进行执行,客户端在执行任务结束后,将任务执行状态通过缓存池发送给服务器,该任务执行状态包括任务执行的数量、运行结束时间、任务报错及错误详情等。
在图3所示的任务处理方法中的步骤S308中,执行目标任务,具体包括如下步骤:在目标任务所采集的数据为特殊数据的情况下,将特殊数据以及特殊数据所需的参数发送给服务器;接收服务器返回的与特殊数据对应的处理结果,依据处理结果采集特殊数据。
在本申请实施例中,上述特殊数据例如可以为加密数据或加密数据等,在客户端执行任务时,若采集的数据为加密数据的情况下,需要获取该加密数据所需的参数,该加密数据以及加密数据所需的参数通过提示信息发送给服务器,服务器实时监控任务状态,并在接收到该提示信息后,获取该特殊数据所需的参数,并依据该特殊数据所需的参数对该特殊数据进行处理后,例如运行本地的加解密代码等,得到处理结果,将处理结果返回给客户端,该特殊数据所需的参数例如可以为与加密数据对应的参数,也可以为解密数据对应的参数,服务器通过对特殊数据处理后,将处理结果返回给客户端,以供客户端正常采集特殊数据。
图4是根据本申请实施例的一种任务处理装置的结构图,如图4所示,该装置包括:
获取模块402,用于获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;
接收模块404,用于接收客户端发送的调用请求;
分配模块406,用于依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;
确定模块408,用于确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
在上述任务处理装置中的获取模块中,获取多个任务之后,该模块还用于依据配置信息分别对多个任务进行配置,得到多个第一任务,其中,配置信息包括以下至少之一:任务名称、多个任务中每个任务所需的并发数;从多个第一任务中确定第二任务,其中,第二任务为多个第一任务中的任意一个任务;至少依据第二任务的任务名称判断第二任务是否存在缓存池中;在缓存池中不存在第二任务时,将第二任务发送至缓存池中。
在上述任务处理装置中,并发数至少依据多个第一任务的优先级确定,且并发数的数量与优先级呈正相关。
在上述任务处理装置中的分配模块中,将目标任务分配给调用请求所请求调用的客户端,具体包括如下过程:依据调用请求中的目标任务名称,查询缓存池中是否存在与目标任务名称一致的任务;在缓存池中存在与目标任务名称一致的任务时,将与目标任务名称一致的任务作为目标任务分配给调用请求所请求调用的客户端。
在上述任务处理装置中的确定模块中,确定多个任务的任务执行状态,具体包括如下过程:在多个任务中的任务执行状态存在目标状态时,依据目标状态所对应任务的配置信息,为目标状态所对应任务分配资源,其中,目标状态用于表征任务开始执行。
在上述任务处理方法中的确定模块中,依据任务执行状态确定与任务执行状态对应的动作,具体包括如下过程:在任务执行状态为第一状态时,将第一任务结果存入数据库中,其中,第一任务结果用于指示任务执行成功;在任务执行状态为第二状态时,将第二任务结果存入数据库中,其中,第二任务结果用于指示任务执行失败;在预设时间内未收到任务执行状态时,将第三任务结果发送给目标对象,其中,第三任务结果用于指示未收到任务执行状态。
在上述任务处理装置中,该装置还用于获取多个任务在执行过程中的提示信息,其中,提示信息用于表征多个任务在执行过程中采集的数据为特殊数据;在接收到提示信息的情况下,获取特殊数据以及特殊数据所需的参数;依据特殊数据所需的参数对特殊数据进行处理后,将处理结果返回给客户端。
需要说明的是,图4所示的任务处理装置用于执行图2所示的任务处理方法,因此上述图2中的任务处理方法中的相关解释说明也适用于该任务处理装置,此处不再赘述。
图5是根据本申请实施例的另一种任务处理装置的结构图,如图5所示,该装置包括:
监控模块502,用于监控缓存池中的任务;
发送模块504,用于在缓存池中存在任务时,向服务器发送调用请求,其中,调用请求用于调用缓存池中的至少一个任务,每个任务为与爬虫框架中的每套代码对应的任务,每个爬虫框架包括多套代码;
接收模块506,用于接收服务器依据调用请求分配的目标任务,其中,目标任务为缓存池中的至少一个任务;
执行模块508,用于执行目标任务,并将目标任务的任务执行状态发送给服务器。
在图5所示的任务处理装置中的执行模块中,该模块用于在目标任务所采集的数据为特殊数据的情况下,将特殊数据以及特殊数据所需的参数发送给服务器;接收服务器返回的与特殊数据对应的处理结果,依据处理结果采集特殊数据。
需要说明的是,图5所示的任务处理装置用于执行图3所示的任务处理方法,因此上述图3所示的任务处理方法中的相关解释说明也适用于该任务处理装置,此处不再赘述。
图6是根据本申请实施例的一种任务处理过程的示意图,如图6所示,服务器用于配置任务,并将配置好的任务放入缓存池中(如任务1,任务2等),服务器根据客户端(如客户端1、客户端2、客户端3等)发送的调用请求,将缓存池中的任务分配给对应的客户端,同时,服务器还用于从缓存池中获取任务的任务执行状态,并根据获取结果更新任务执行状态,并接收客户端发送提示信息,提示信息中包含特殊数据以及与特殊数据所需的参数,例如特殊数据为加解密数据时,其所需的参数为与加解密数据对应的加解密参数,服务器还用于将与提示信息对应的处理结果返回给客户端,服务器获取该特殊数据所需的参数,并依据该特殊数据所需的参数对该特殊数据进行处理后,例如运行本地的加解密代码等,得到处理结果,将处理结果返回给客户端,供客户端正常采集特殊数据。客户端用于监控缓存池中的任务,在缓存池中存在任务时,向服务器发送调用请求,客户端接收服务器依据调用请求分配的目标任务,并执行目标任务,将目标任务的任务执行状态通过缓存池发送给服务器,需要说明的是,客户端可以为多个,每个客户端至少用于执行一个任务或多个任务,每个任务可以同时在多个客户端中执行,从而实现任务的并行处理。在另一种可选地实施例中,客户端可直接监控缓存池中的任务,若缓存池中存在任务,则直接调用缓存池中的任务,而无需经过服务器。另外,客户端在执行任务的过程中,若采集的数据为特殊数据的情况下,需要获取该特殊数据所需的参数,该特殊数据以及特殊数据所需的参数通过提示信息发送给服务器,服务器实时监控任务状态,并在接收到该提示信息后,依据特殊数据所需的参数对该特殊数据进行处理后,将处理结果返回给客户端。通过以下例子对图6中的任务处理过程进行解释说明。
服务器在获取到多个任务后,根据计算机性能以及任务特殊性或优先级,对多个任务进行配置,例如通过任务配置得到:任务1,并发数100,任务2,并发数20,并将配置好的任务1和任务2放入缓存池,各个客户端通过监控缓存池,当发现任务1与任务2存在于缓存池中,则客户端1和客户端2向服务器发送调用请求,请求调用任务1和任务2,服务器在查询到缓存池中存在该任务1和任务2时,将该任务1和任务2同时分配给客户端1和客户端2,在客户端执行任务的过程中,例如客户端1执行任务1对应的爬虫代码时,任务1对应的任务执行状态为开始执行,此时为任务1分配100个进程,该进程的数量即对应该任务的并发数的数量,在客户端1执行任务2对应的爬虫代码时,任务2对应的任务执行状态为开始执行,此时为任务2分配20个进程,假如存在特殊性的项目(例如为任务3),该项目需要采集某个网站,该网站有1万个url,那么服务器会向缓存池放入任务3的1万个url,将并发量设置为200,那么客户端当监控缓存池存在任务3时,则会开启200个并发或进程执行任务3的爬虫代码,去获取1万个url采集。
为了兼容各种情况,客户端在调用任务时,可以根据某个实际的任务名称,也可以是某个任务的多少url或者id或者其它参数根据爬虫代码运行需要的参数等进行调用,服务器在缓存池中放入对应爬虫代码需要的参数以供该任务代码正常运行,运行结束后客户端会向缓存池发送信号以告知服务器运行结果,该运行结果可以包括任务执行状态,还可以包括任务执行的数量、运行结束时间、任务报错及错误详情等,服务器下发任务后会持续监控缓存池中的任务执行状态,在确定任务执行状态为任务执行成功时,将任务执行成功的结果(即第一任务结果)存入数据库中;在确定任务执行状态为任务执行失败时,将任务执行失败的结果(即第二任务结果)存入数据库中。在上述确定任务执行状态为第一状态或第二状态时,均认为服务器获取到了任务执行状态,也表示任务执行状态获取正常,在另一种可选的实施例中,若服务器在预设时间内未获取到任务执行状态时,则认为任务状态获取失败,此时将未收到任务执行状态的结果(即第三任务结果)发送给目标对象,该目标对象可以为开发人员,同时将第三任务结果存入数据库中。
如果客户端执行任务进行数据采集过程中的数据为特殊数据,例如需要加密某些参数提交才能正常采集数据,或者采集结果是加密后的数据,如采集页面存在需要加密的参数协议、指纹、风控、内容,则需通过在服务器运用flask搭建api服务,直接获取对应的参数协议、指纹、风控、内容等,利用协程做多并发分离,负载均衡,接收针对各个项目的需要加/解密的参数及数据,通过运行本地对应的加/解密代码,将加/解密结果(即处理结果)返回客户端以供客户端正常采集,可以保证代码最大化应对各种爬虫情况,实现较强的兼容性,同时,加解密数据集成在服务器,最大化保证了代码信息安全。
本申请实施例提供的任务处理方法,可以实现如下技术效果:1.服务器可以配置各个不同时间段实现调度任务的自动分发;2.服务器能够监控任务是否存在,若存在则通过配置多并发进行任务采集;3.客户端在任务完成后将信号传递到服务器,该信号中包括任务完成情况以及任务完成量等;4.如果程序出错会将错误信息传递到服务器,并推送到开发人员;5.本申请实施例中能够不约束从请求、解析、入库写法,更兼容的使用各种爬虫代码;6.本申请实施例中各个项目通过配置就能嵌入同一个框架,一个框架可以嵌入多个任务多套代码。
通过运行本申请实施例中的任务处理方法,可以实现对任务24小时不间断的监控以及分发,另外,根据各个任务在配置中设置的并发数,结合运行设备的配置,可以控制数据的采集效率,当设置的任务并发数越多、设备配置越好,则在执行任务时越快捷方便。
本申请实施例还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,该非易失性存储介质所在设备通过运行计算机程序执行以下任务处理方法:获取多个任务,其中,多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据调用请求,将目标任务分配给调用请求所请求调用的客户端,其中,目标任务为多个任务中的至少一个任务;确定多个任务的任务执行状态,依据任务执行状态确定与任务执行状态对应的动作。
在另一种可选的实施例中,上述非易失性存储介质所在设备通过运行计算机程序还可以执行另一种任务处理方法:监控缓存池中的任务;在缓存池中存在任务时,向服务器发送调用请求,其中,调用请求用于调用缓存池中的至少一个任务,每个任务为与爬虫框架中的每套代码对应的任务,每个爬虫框架包括多套代码;接收服务器依据调用请求分配的目标任务,其中,目标任务为缓存池中的至少一个任务;执行目标任务,并将目标任务的任务执行状态发送给服务器。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种任务处理方法,其特征在于,包括:
获取多个任务,其中,所述多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;
接收客户端发送的调用请求;
依据所述调用请求,将目标任务分配给所述调用请求所请求调用的客户端,其中,所述目标任务为所述多个任务中的至少一个任务;
确定所述多个任务的任务执行状态,依据所述任务执行状态确定与所述任务执行状态对应的动作。
2.根据权利要求1所述的方法,其特征在于,获取多个任务之后,所述方法还包括:
依据配置信息分别对所述多个任务进行配置,得到多个第一任务,其中,所述配置信息包括以下至少之一:任务名称、所述多个任务中每个任务所需的并发数;
从所述多个第一任务中确定第二任务,其中,所述第二任务为所述多个第一任务中的任意一个任务;
至少依据所述第二任务的任务名称判断所述第二任务是否存在缓存池中;
在所述缓存池中不存在所述第二任务时,将所述第二任务发送至所述缓存池中。
3.根据权利要求2所述的方法,其特征在于,所述并发数至少依据所述多个第一任务的优先级确定,且所述并发数的数量与所述优先级呈正相关。
4.根据权利要求2所述的方法,其特征在于,将目标任务分配给所述调用请求所请求调用的客户端,包括:
依据所述调用请求中的目标任务名称,查询所述缓存池中是否存在与所述目标任务名称一致的任务;
在所述缓存池中存在与所述目标任务名称一致的任务时,将与所述目标任务名称一致的任务作为所述目标任务分配给所述调用请求所请求调用的客户端。
5.根据权利要求2所述的方法,其特征在于,确定所述多个任务的任务执行状态,包括:
在所述多个任务中的任务执行状态存在目标状态时,依据所述目标状态所对应任务的配置信息,为所述目标状态所对应任务分配资源,其中,所述目标状态用于表征任务开始执行。
6.根据权利要求1所述的方法,其特征在于,依据所述任务执行状态确定与所述任务执行状态对应的动作,包括:
在所述任务执行状态为第一状态时,将第一任务结果存入数据库中,其中,所述第一任务结果用于指示任务执行成功;
在所述任务执行状态为第二状态时,将第二任务结果存入数据库中,其中,所述第二任务结果用于指示任务执行失败;
在预设时间内未收到所述任务执行状态时,将第三任务结果发送给目标对象,其中,所述第三任务结果用于指示未收到任务执行状态。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述多个任务在执行过程中的提示信息,其中,所述提示信息用于表征所述多个任务在执行过程中采集的数据为特殊数据;
在接收到所述提示信息的情况下,获取所述特殊数据以及所述特殊数据所需的参数;
依据所述特殊数据所需的参数对所述特殊数据进行处理后,将处理结果返回给所述客户端。
8.一种任务处理方法,其特征在于,包括:
监控缓存池中的任务;
在所述缓存池中存在任务时,向服务器发送调用请求,其中,所述调用请求用于调用所述缓存池中的至少一个任务,每个任务为与爬虫框架中的每套代码对应的任务,每个爬虫框架包括多套代码;
接收所述服务器依据所述调用请求分配的目标任务,其中,所述目标任务为所述缓存池中的至少一个任务;
执行所述目标任务,并将所述目标任务的任务执行状态发送给所述服务器。
9.根据权利要求8所述的方法,其特征在于,执行所述目标任务,包括:
在所述目标任务所采集的数据为特殊数据的情况下,将所述特殊数据以及所述特殊数据所需的参数发送给服务器;
接收所述服务器返回的与所述特殊数据对应的处理结果,依据所述处理结果采集所述特殊数据。
10.一种任务处理装置,其特征在于,包括:
获取模块,用于获取多个任务,其中,所述多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;
接收模块,用于接收客户端发送的调用请求;
分配模块,用于依据所述调用请求,将目标任务分配给所述调用请求所请求调用的客户端,其中,所述目标任务为所述多个任务中的至少一个任务;
确定模块,用于确定所述多个任务的任务执行状态,依据所述任务执行状态确定与所述任务执行状态对应的动作。
11.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,与所述存储器连接,用于执行实现以下功能的程序指令:获取多个任务,其中,所述多个任务至少包括一个爬虫框架中的多套代码,每套代码对应一个任务;接收客户端发送的调用请求;依据所述调用请求,将目标任务分配给所述调用请求所请求调用的客户端,其中,所述目标任务为所述多个任务中的至少一个任务;确定所述多个任务的任务执行状态,依据所述任务执行状态确定与所述任务执行状态对应的动作。
12.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项或权利要求8至9中任意一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211372611.XA CN115774564B (zh) | 2022-11-03 | 任务处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211372611.XA CN115774564B (zh) | 2022-11-03 | 任务处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115774564A true CN115774564A (zh) | 2023-03-10 |
CN115774564B CN115774564B (zh) | 2024-06-25 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180300424A1 (en) * | 2017-04-14 | 2018-10-18 | Brewer Digital Marketing, LLC | Systems and methods for providing structured markup content retrievable by a service that provides rich search results |
CN109492149A (zh) * | 2018-11-29 | 2019-03-19 | 深圳墨世科技有限公司 | 爬虫任务处理方法及装置 |
CN110457203A (zh) * | 2019-07-04 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 爬虫业务测试方法、装置、计算机设备和存储介质 |
CN111126733A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 爬取任务的分配方法及装置 |
CN111538590A (zh) * | 2020-04-17 | 2020-08-14 | 姜海强 | 一种基于cs架构的分布式数据采集方法及系统 |
CN112612939A (zh) * | 2020-12-18 | 2021-04-06 | 山东中创软件工程股份有限公司 | 一种爬虫部署方法、系统、装置、设备及存储介质 |
CN112818198A (zh) * | 2021-01-25 | 2021-05-18 | 苏州市中地行信息技术有限公司 | 一种高度解耦可动态管理爬虫的方法 |
CN113835957A (zh) * | 2021-09-22 | 2021-12-24 | 上海妙一生物科技有限公司 | 一种爬虫任务的监控方法和装置 |
CN114003384A (zh) * | 2021-11-01 | 2022-02-01 | 北京深演智能科技股份有限公司 | 任务管理的方法、装置和设备 |
CN114089975A (zh) * | 2022-01-20 | 2022-02-25 | 北京大学 | 计算软件的扩展方法、装置、非易失性存储介质及处理器 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180300424A1 (en) * | 2017-04-14 | 2018-10-18 | Brewer Digital Marketing, LLC | Systems and methods for providing structured markup content retrievable by a service that provides rich search results |
CN111126733A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 爬取任务的分配方法及装置 |
CN109492149A (zh) * | 2018-11-29 | 2019-03-19 | 深圳墨世科技有限公司 | 爬虫任务处理方法及装置 |
CN110457203A (zh) * | 2019-07-04 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 爬虫业务测试方法、装置、计算机设备和存储介质 |
CN111538590A (zh) * | 2020-04-17 | 2020-08-14 | 姜海强 | 一种基于cs架构的分布式数据采集方法及系统 |
CN112612939A (zh) * | 2020-12-18 | 2021-04-06 | 山东中创软件工程股份有限公司 | 一种爬虫部署方法、系统、装置、设备及存储介质 |
CN112818198A (zh) * | 2021-01-25 | 2021-05-18 | 苏州市中地行信息技术有限公司 | 一种高度解耦可动态管理爬虫的方法 |
CN113835957A (zh) * | 2021-09-22 | 2021-12-24 | 上海妙一生物科技有限公司 | 一种爬虫任务的监控方法和装置 |
CN114003384A (zh) * | 2021-11-01 | 2022-02-01 | 北京深演智能科技股份有限公司 | 任务管理的方法、装置和设备 |
CN114089975A (zh) * | 2022-01-20 | 2022-02-25 | 北京大学 | 计算软件的扩展方法、装置、非易失性存储介质及处理器 |
Non-Patent Citations (2)
Title |
---|
CATALIN-CONSTANTIN USURELU等: "Spider Mesh Overlay for Task Load Balancing in Cloud Computing", 《2015 IEEE INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTER COMMUNICATION AND PROCESSING (ICCP)》, 2 November 2015 (2015-11-02), pages 433 * |
葛又嘉: "基于微服务架构的分布式爬虫系统设计与应用", 《CNKI优秀硕士学位论文全文库 信息科技辑》, no. 03, 15 March 2021 (2021-03-15), pages 139 - 106 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095022B (zh) | 一种数据备份方法及装置 | |
KR101531834B1 (ko) | 모바일 클라우드 컴퓨팅 환경에서의 리소스 관리 시스템 및 그 방법 | |
CN107704360B (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN114077480B (zh) | 一种主机与虚拟机共享内存方法、装置、设备及介质 | |
US20120151481A1 (en) | System for managing personalization information of virtual machine based on cloud computing and method thereof | |
CN112416969B (zh) | 分布式数据库中的并行任务调度系统 | |
CN113342534B (zh) | 图形处理资源调配方法、装置、设备及存储介质 | |
CN105024913B (zh) | 进行即时通讯会话的方法、装置及系统 | |
CA2534807A1 (en) | On demand node and server instance allocation and de-allocation | |
US20170033980A1 (en) | Agent manager for distributed transaction monitoring system | |
CN114979024A (zh) | 算力网络交易方法、装置、计算机可读介质及电子设备 | |
CN102385536A (zh) | 一种实现并行计算的方法及系统 | |
US10223407B2 (en) | Asynchronous processing time metrics | |
CN115237589A (zh) | 一种基于sr-iov的虚拟化方法、装置和设备 | |
CN114296953A (zh) | 一种多云异构系统及任务处理方法 | |
CN111400051B (zh) | 一种资源调度方法、装置及系统 | |
CN115774564A (zh) | 任务处理方法、装置及电子设备 | |
CN110196721B (zh) | 一种互联网数据中心管理方法、系统及介质 | |
CN115774564B (zh) | 任务处理方法、装置及电子设备 | |
CN113766186B (zh) | 网络摄像机配置界面的跳转方法、装置、系统和电子装置 | |
CN104219258A (zh) | 号码归属地的实时查询方法、终端、服务器及系统 | |
CN112737827A (zh) | 资源分配方法、装置及系统 | |
CN110858201B (zh) | 数据处理方法及系统、处理器、存储介质 | |
KR101251099B1 (ko) | 원격 접속 과정 모니터링 방법 및 원격 접속 모니터링 시스템 | |
CN104657152A (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 | ||
GR01 | Patent grant |