CN117873657A - 基于redis的无头浏览器RPA任务执行队列的调度方法及装置 - Google Patents

基于redis的无头浏览器RPA任务执行队列的调度方法及装置 Download PDF

Info

Publication number
CN117873657A
CN117873657A CN202311664606.0A CN202311664606A CN117873657A CN 117873657 A CN117873657 A CN 117873657A CN 202311664606 A CN202311664606 A CN 202311664606A CN 117873657 A CN117873657 A CN 117873657A
Authority
CN
China
Prior art keywords
queue
private
public
target object
server
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
CN202311664606.0A
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.)
Shanghai Baiqiu New Online Commerce Digital Technology Co ltd
Original Assignee
Shanghai Baiqiu New Online Commerce Digital 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 Shanghai Baiqiu New Online Commerce Digital Technology Co ltd filed Critical Shanghai Baiqiu New Online Commerce Digital Technology Co ltd
Priority to CN202311664606.0A priority Critical patent/CN117873657A/zh
Publication of CN117873657A publication Critical patent/CN117873657A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于redis的无头浏览器RPA任务执行队列的调度方法及装置,包括:响应于RPA任务的并发请求;对每个服务器部署Headless模式下的执行环境;配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;确定分配后当前公用队列和私有队列与目标对象的绑定状态;判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述RPA任务优先推送至私有队列执行;根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送,从而实现服务器的负载均衡与服务器预警。

Description

基于redis的无头浏览器RPA任务执行队列的调度方法及装置
技术领域
本发明涉及业务监控技术领域,尤其涉及一种基于redis的无头浏览器RPA任务执行队列的调度方法及装置。
背景技术
RPA(Robotic process automation,机器人流程自动化),即:机器、流程、自动化,RPA是以机器人作为虚拟劳动力,依据预先设定的程序与现有用户系统进行交互并完成预期的任务。其中流程是指给机器人设定的用于完成用户任务的工作流程,由机器人根据流程自动完成用户任务。从目前的技术实践来看,现有的RPA还仅适用于高重复性、逻辑确定的任务。RPA能够代替或者协助人类在计算机、手机等数字化设备中完成重复性工作与任务。RPA就是借助一些能够自动执行的脚本完成一系列原来需要人工完成的工作,但凡具备一定脚本生成、编辑、执行能力的工具在此处都可以称之为机器人。使用这个之后,对于公司的后台业务自动化,业务处理的正确性,效率提高,甚至于业务的扩大都很大裨益。
目前服务器执行无头浏览器RPA任务时,自动化操作平台AOP系统会在服务器上通过Puppeteer开启一个无头的chromium浏览器,然后在该浏览器中执行录制的RPA脚本。
但随着业务的发展及使用品牌的增多以上这种模式逐渐产生了瓶颈与问题。在高并发请求时常常会出现内存溢出程序卡死等问题导致任务无法正常执行完成。
发明内容
本发明的目的是提供一种基于redis的无头浏览器RPA任务执行队列的调度方法及装置,通过多台服务器组成服务器集群,在通过私有队列绑定,任务执行分发逻辑由Redis队列分发到服务器集群中执行相关任务从而实现服务器的负载均衡与服务器预警,提高工作效率。
本发明提供了一种基于redis的无头浏览器RPA任务执行队列的调度方法,包括:
响应于无头浏览器RPA任务的并发请求;
根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;
配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;
在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;
当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
作为优选地,所述公用队列包括多个进程,用于允许任意目标对象访问权限,且同时处理多个推送任务;所述私有队列仅包括一个进程,用于允许指定目标对象访问权限,且仅处理一个推送任务。
作为优选地,所述判断目标对象是否绑定私有队列包括:
确定目标对象与私有队列的绑定情况;
若所述目标对象与私有队列已存在绑定关系,则返回当前绑定的队列信息;
若所述目标对象与私有队列不存在绑定关系,则从队列池中获取其余私有队列的状态,如果存在处于空闲状态的私有队列,建立空闲状态的私有队列与所述目标对象的绑定关系,并返回新建绑定的队列信息;如果不存在处于空闲状态的私有队列,则启动对目标对象的回收机制;
对处于回收机制的所述目标对象的执行能力进行检测,在所述目标对象达不到预设执行目标时,如果所述目标对象与私有队列间已存在绑定关系,返回当前绑定的队列信息;如果所述目标对象与私有队列间不存在绑定关系,则发出预警提示;
其中,所述队列池为所有公用队列和所有私有队列的集合,所述目标对象为电商平台的店铺。
作为优选地,所述在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断包括:
对所述目标对象与私有队列的绑定结果进行判断;
在所述目标对象与私有队列的绑定结果为空的情况下,将所述目标对象推送至私有队列并按照私有队列逻辑执行;
在所述目标对象与私有队列有绑定结果的情况下,将所述目标对象推送至公用队列并按照公用队列逻辑执行。
作为优选地,所述在所述目标对象与私有队列的绑定结果为空的情况下,将所述目标对象推送至私有队列包括:
判断私有队列是否有等待执行的队列,所述等待执行的队列为已有目标RPA任务在执行过程中,后续目标RPA任务占据在队列中等待而构成的堆积任务;
当私有队列存在堆积任务量时,则推送至公用队列并按照公用队列逻辑执行;
当私有队列堆积任务量为空时,则推送至该私有队列执行对应任务。
作为优选地,所述在所述目标对象与私有队列有绑定结果的情况下,将所述目标对象推送至公用队列包括:
判断公用队列整体的繁忙状态,该公用队列中等待执行的任务数大于或等于该服务器中的总公用总进程数时为繁忙,即:总进程数∑(public_process)<=count_queue视为繁忙;
如果全部服务器均处于繁忙状态,则触发预警机制,在预警次数大于报警阈值时,对服务器主机进行增加以缓解服务器的繁忙状态;
同时判断所述目标对象是否存在已有绑定关系的私有队列,若存在所述私有队列,则按初始私有队列推送,若不存在私有队列,则启动公用队列模式,基于最大权重调度策略计算出最大权重服务器并在所述公用队列下执行;
如果服务器未处于繁忙状态,触发公用队列模式,基于最大权重调度策略计算出最大权重服务器,依次将目标RPA任务推送至最大权重服务器中处于空闲状态的公用队列中;
其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程。
作为优选地,所述基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送包括:
设置公用队列繁忙度的权重占比A和ping值的权重占比B;
计算公用队列的繁忙度=(1/(count_queue/∑(public_process)))*A+(1/ping*100)*B;
其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程,ping值表示每个服务器连接响应时长。
本发明还提供了一种基于redis的无头浏览器RPA任务执行队列的调度装置,包括:
请求模块,用于响应于无头浏览器RPA任务的并发请求;
环境配置模块,用于根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;
队列分配模块,用于配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;
状态确认模块,用于在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;
第一队列推送模块,用于当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
第二队列推送模块,用于在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
本发明提供了一种电子设备,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如本发明实施例所述的基于redis的无头浏览器RPA任务执行队列的调度方法。
本发明提供了一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如本发明实施例所述的基于redis的无头浏览器RPA任务执行队列的调度方法。
针对现有技术,本发明具有如下的有益效果:
本发明所提供的一种基于redis的无头浏览器RPA任务执行队列的调度方法及装置,通过多台服务器组成服务器集群,在通过私有队列绑定,任务执行分发逻辑由Redis队列分发到服务器集群中执行相关任务从而实现服务器的负载均衡与服务器预警;
本发明基于优先级对目标对象进行对应队列的分配,先进行私有队列分配再进行公用队列分配,这样进行的私有队列的分配可以保证在大量请求峰值时每个店铺至少有一个任务可以正常执行,这样有利于缓解服务器峰值压力,并加快用户请求速度,提高任务处理效率。
本发明基于队列机制先进先出的特点,周转时间短、响应时间快,根据预设执行分发策略的调度方式和算法保持系统中各类资源都处于忙碌状态,有利于各类资源的平衡利用,提高服务器的利用率,显著地提高系统的吞吐量。
本发明根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送,有利于缓解服务器峰值压力,并加快用户请求速度,提高任务处理效率。
附图说明
图1为本发明实施例一中所述基于redis的无头浏览器RPA任务执行队列的调度方法的步骤示意图;
图2为本发明实施例一中服务器主机分布示例图;
图3为本发明实施例一中所述基于redis的无头浏览器RPA任务执行队列的调度方法的整体流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一种实施例”表示“至少一种实施例”;术语“另一实施例”表示“至少一种另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请公开中提及的“一次”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
如图1所示,本发明提供了一种基于redis的无头浏览器RPA任务执行队列的调度方法,包括:
S1:响应于无头浏览器RPA任务的并发请求,如业务发展,品牌的增多;
S2:根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;本实施中采用的Headless模式是一种在不显示浏览器窗口的情况下运行Web页面的技术。它提供了一种在服务器上运行Web应用程序的方法,无需处理浏览器和界面元素之间的复杂性。Headless模式最初是由Google Chrome浏览器引入的,现在也被其他一些主流浏览器所支持,例如Mozilla Firefox、Safari、Edge等。它可以用于各种用例,包括自动化浏览器测试、爬取网页信息、对网站进行可视化分析等。Headless模式的主要优点是可节省计算机资源并提高应用程序的性能,另外,它还可以使Web开发人员更轻松地进行测试、调试和维护Web应用程序。
S3:配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;本实施例所述目标对象为电商平台上店铺,由于公用队列分配逻辑较为复杂;本实施例采用的优先级则是先进行私有队列分配再进行公用队列分配,这样进行的私有队列的分配可以保证在大量请求峰值时每个店铺至少有一个任务可以正常执行,这样有利于缓解服务器峰值压力,并加快用户请求速度,提高任务处理效率。
参见图2所示,预估有品牌店铺20个,设为shop1~shop20;
服务器集群主机4台,设为server1~server4;
每台服务器分配1个公用队列,进程数量5个,设为publicRedis1;5个私有队列,每个私有队列开启一个进程,privateRedis1~privateRedis5;每台服务器6个队列,公用队列加私有队列进程数为10个,其中公用队列是任何店铺都有用的队列;私有队列是分到具体某个店铺/指定店铺上,别的店铺用不了。
S4:在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;本实施例中多个目标对象呈增加趋势的业务模式如多个品牌入驻,需要先对公用队列和私有队列的占用情况进行确实,实时更新对公用队列和私有队列的占用情况,有利于后续任务的绑定。
S5:当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
S6:在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
具体地,所述公用队列包括多个进程,用于允许任意目标对象访问权限,且同时处理多个推送任务;所述私有队列仅包括一个进程,用于允许指定目标对象访问权限,且仅处理一个推送任务。本实施采用的公用队列和私有队列均为redis的队列,一个队列可以结束很多个任务请求,当接收到请求后会立马分发到具体进程去执行任务,一个进程同时只能执行一个rpa任务。Redis作为任务队列的优点如下:1)高性能:Redis是一种内存数据库,存储和读取操作速度非常快,可以满足高并发的任务处理需求。2)支持延时任务:Redis提供延时任务处理功能,可根据需求设置任务执行的时间,支持先进先出、先进后出等多种队列模式。3)支持优先级队列:Redis支持设置任务的优先级,可以将任务按照优先级进行排序,优先执行高优先级任务,提高任务处理效率。
-例:
-私有队列只有一个进程,当很多推送数据过来后只能同时处理1个。当第二个推送过来后会在队列中等待。
-公共队列有五个进程,同时可以处理5个推送。当第六个推送过来后会在队列中等待。
为了保证在大量请求峰值时每个店铺至少有一个任务可以正常执行,所述步骤S5中判断目标对象是否绑定私有队列包括:
确定目标对象与私有队列的绑定情况;
若所述目标对象与私有队列已存在绑定关系,则返回当前绑定的队列信息;
若所述目标对象与私有队列不存在绑定关系,则从队列池中获取其余私有队列的状态,如果存在处于空闲状态的私有队列,建立空闲状态的私有队列与所述目标对象的绑定关系,并返回新建绑定的队列信息;如果不存在处于空闲状态的私有队列,则启动对目标对象的回收机制;
对处于回收机制的所述目标对象的执行能力进行检测,在所述目标对象达不到预设执行目标时,如果所述目标对象与私有队列间已存在绑定关系,返回当前绑定的队列信息;如果所述目标对象与私有队列间不存在绑定关系,则发出预警提示;
其中,所述队列池为所有公用队列和所有私有队列的集合,所述目标对象为电商平台的店铺。
本领域技术人员可以理解,参见图3所示,当执行某一个RPA任务时,先查找绑定的私有队列,如果已存在绑定关系则返回绑定的队列信息。如果不存在绑定关系,则查找队列池中有无空闲私有队列,有则保存绑定关系,返回绑定的队列信息。无空闲私有队列则启动队列店铺回收机制,检测有无关店店铺或者24小时未执行过任务的店铺,如果存在则保存绑定关系,返回绑定的队列信息。如果都不存在返回空,同时给出预警提示。
所述步骤S6中在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断包括:
对所述目标对象与私有队列的绑定结果进行判断;
在所述目标对象与私有队列的绑定结果为空的情况下,将所述目标对象推送至私有队列并按照私有队列逻辑执行;具体地,包括如下步骤:判断私有队列是否有等待执行的队列,所述等待执行的队列为已有目标RPA任务在执行过程中,后续目标RPA任务占据在队列中等待而构成的堆积任务;当私有队列存在堆积任务量时,则推送至公用队列并按照公用队列逻辑执行;当私有队列堆积任务量为空时,则推送至该私有队列执行对应任务。
在所述目标对象与私有队列有绑定结果的情况下,将所述目标对象推送至公用队列并按照公用队列逻辑执行;具体地,包括如下步骤:判断公用队列整体的繁忙状态,该公用队列中等待执行的任务数大于或等于该服务器中的总公用总进程数时为繁忙,即:总进程数∑(public_process)<=count_queue视为繁忙;如果全部服务器均处于繁忙状态,则触发预警机制,在预警次数大于报警阈值时,对服务器主机进行增加以缓解服务器的繁忙状态;同时判断所述目标对象是否存在已有绑定关系的私有队列,若存在所述私有队列,则按初始私有队列推送,若不存在私有队列,则启动公用队列模式,基于最大权重调度策略计算出最大权重服务器并在所述公用队列下执行;如果服务器未处于繁忙状态,触发公用队列模式,基于最大权重调度策略计算出最大权重服务器,依次将目标RPA任务推送至最大权重服务器中处于空闲状态的公用队列中;其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程。
本领域技术人员可以理解,本实施例采用的预设执行分发策略的前提:店铺已执行了私有队列的绑定。可能出现,情况1:产生绑定了私有队列;情况2:未绑定私有队列返回空。情况1:任务尝试推送至私有队列,此时会判断私有队列中是否有等待队列,已有一个任务在执行中,后一个任务会占据在队列中等待,如果存在则执行公用队列逻辑,详见情况2。如果为空则推送至该队列执行相关任务。
情况2:判断公用队列整体繁忙状态(当公用队列中等待执行的任务数大于或等于该主机中的总公用总进程数时为繁忙,即:总进程数∑(public_process)<=count_queue视为繁忙)。如果全部主机都处于繁忙则按原来私有队列推送,同时发送预警。如果有空闲主机则进行公用队列权重计算分配策略筛选出最合适的主机,即权重值最大的主机进行任务推送。
为了筛选出最优服务器主机,实现服务器的负载均衡与服务器预警,基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送包括:
设置公用队列繁忙度的权重占比A和ping值的权重占比B;
计算公用队列的繁忙度=(1/(count_queue/∑(public_process)))*A+(1/ping*100)*B;
其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程,ping值表示每个服务器连接响应时长。
例如,公用队列权重计算分配策略:
繁忙度count_queue/∑(public_process),
繁忙度的倒数*70%+ping值的倒数*100*30%,
(1/(count_queue/∑(public_process)))*70%+(1/ping*100)*30%,其中数值100是为了数值好读取,ping值单位毫秒,取倒ping越小,延时越少数越大。
例:主机A公用队列可用进程5个,公用队列中有3个任务,ping值为100,主机B公用队列可用进程6个,公用队列中有2个任务,ping值为120。
A:(1/(3/5))*70%+(1/100*100)*30%=1.9,
B:(1/(2/6))*70%+(1/120*100)*30%=2.25新任务会推入B主机公用队列中。
实施例二
本发明提供了一种基于redis的无头浏览器RPA任务执行队列的调度装置,包括:
请求模块,用于响应于无头浏览器RPA任务的并发请求;
环境配置模块,用于根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;
队列分配模块,用于配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;
状态确认模块,用于在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;
第一队列推送模块,用于当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
第二队列推送模块,用于在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
本发明所提供的一种基于redis的无头浏览器RPA任务执行队列的调度装置,基于Headless模式,通过多台服务器组成服务器集群,在通过私有队列绑定,任务执行分发逻辑由Redis队列分发到服务器集群中执行相关任务从而实现服务器的负载均衡与服务器预警,提高工作效率。上述请求模块、环境配置模块、队列分配模块、状态确认模块、第一队列推送模块、第二队列推送模块的原理内容及实现方法,均如实施例一中所述,在此不再赘述。
实施例三
在本申请的一些实施例中,还提供了一种电子设备。该种电子设备中包含存储器和处理器,其中存储器用于对处理程序进行存储,处理器则根据指令对处理程序进行执行。当处理器对处理程序进行执行时,使得前述实施例中的基于redis的无头浏览器RPA任务执行队列的调度方法得以实现。
在本申请的一些实施例中,还提供了一种可读存储介质,该可读存储介质可以为非易失性可读存储介质,也可以为易失性可读存储介质。该可读存储介质中存储有指令,当该指令在计算机上运行时,使得包含该种可读存储介质的电子设备执行前述的基于redis的无头浏览器RPA任务执行队列的调度方法。
可以理解的是,对于前述所提及的基于redis的无头浏览器RPA任务执行队列的调度方法,如果均以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-only memory,ROM)、随机存取存储器(Random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请所公开的技术方案所涉及的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,包括:
响应于无头浏览器RPA任务的并发请求;
根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;
配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;
在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;
当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
2.如权利要求1所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述公用队列包括多个进程,用于允许任意目标对象访问权限,且同时处理多个推送任务;所述私有队列仅包括一个进程,用于允许指定目标对象访问权限,且仅处理一个推送任务。
3.如权利要求1所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述判断目标对象是否绑定私有队列包括:
确定目标对象与私有队列的绑定情况;
若所述目标对象与私有队列已存在绑定关系,则返回当前绑定的队列信息;
若所述目标对象与私有队列不存在绑定关系,则从队列池中获取其余私有队列的状态,如果存在处于空闲状态的私有队列,建立空闲状态的私有队列与所述目标对象的绑定关系,并返回新建绑定的队列信息;如果不存在处于空闲状态的私有队列,则启动对目标对象的回收机制;
对处于回收机制的所述目标对象的执行能力进行检测,在所述目标对象达不到预设执行目标时,如果所述目标对象与私有队列间已存在绑定关系,返回当前绑定的队列信息;如果所述目标对象与私有队列间不存在绑定关系,则发出预警提示;
其中,所述队列池为所有公用队列和所有私有队列的集合,所述目标对象为电商平台的店铺。
4.如权利要求1所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断包括:
对所述目标对象与私有队列的绑定结果进行判断;
在所述目标对象与私有队列的绑定结果为空的情况下,将所述目标对象推送至私有队列并按照私有队列逻辑执行;
在所述目标对象与私有队列有绑定结果的情况下,将所述目标对象推送至公用队列并按照公用队列逻辑执行。
5.如权利要求4所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述在所述目标对象与私有队列的绑定结果为空的情况下,将所述目标对象推送至私有队列包括:
判断私有队列是否有等待执行的队列,所述等待执行的队列为已有目标RPA任务在执行过程中,后续目标RPA任务占据在队列中等待而构成的堆积任务;
当私有队列存在堆积任务量时,则推送至公用队列并按照公用队列逻辑执行;
当私有队列堆积任务量为空时,则推送至该私有队列执行对应任务。
6.如权利要求4所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述在所述目标对象与私有队列有绑定结果的情况下,将所述目标对象推送至公用队列包括:
判断公用队列整体的繁忙状态,该公用队列中等待执行的任务数大于或等于该服务器中的总公用总进程数时为繁忙,即:总进程数∑(public_process)<=count_queue视为繁忙;
如果全部服务器均处于繁忙状态,则触发预警机制,在预警次数大于报警阈值时,对服务器主机进行增加以缓解服务器的繁忙状态;
同时判断所述目标对象是否存在已有绑定关系的私有队列,若存在所述私有队列,则按初始私有队列推送,若不存在私有队列,则启动公用队列模式,基于最大权重调度策略计算出最大权重服务器并在所述公用队列下执行;
如果服务器未处于繁忙状态,触发公用队列模式,基于最大权重调度策略计算出最大权重服务器,依次将目标RPA任务推送至最大权重服务器中处于空闲状态的公用队列中;
其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程。
7.如权利要求1所述的基于redis的无头浏览器RPA任务执行队列的调度方法,其特征在于,所述基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送包括:
设置公用队列繁忙度的权重占比A和ping值的权重占比B;
计算公用队列的繁忙度=(1/(count_queue/∑(public_process)))*A+(1/ping*100)*B;
其中,count_queue为每个服务器公用队列中等待任务数,public_process为每个服务器公用进程,ping值表示每个服务器连接响应时长。
8.一种基于redis的无头浏览器RPA任务执行队列的调度装置,其特征在于,包括:
请求模块,用于响应于无头浏览器RPA任务的并发请求;
环境配置模块,用于根据所述并发请求配置多个服务器构成服务器集群,在所述服务器集群下对每个服务器部署Headless模式下的执行环境;
队列分配模块,用于配置每个服务器的公用队列和私有队列并基于优先级对目标对象进行对应队列的分配;
状态确认模块,用于在多个目标对象呈增加趋势的业务模式下,确定分配后当前公用队列和私有队列与目标对象的绑定状态;
第一队列推送模块,用于当执行目标RPA任务时,判断目标对象是否绑定私有队列,在私有队列处于空闲状态下,将所述目标RPA任务优先推送至私有队列执行;
第二队列推送模块,用于在目标对象绑定私有队列的情况下,根据预设执行分发策略对私有队列和公用队列的占用情况进行判断,在私有队列存在占用的情况下,对公用队列的整体繁忙状态进行判断,并基于最大权重调度策略筛选出最优执行服务器的公用队列进行任务推送。
9.一种电子设备,其特征在于,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1至7中任意一项所述的基于redis的无头浏览器RPA任务执行队列的调度方法。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如权利要求1至7中任意一项所述的基于redis的无头浏览器RPA任务执行队列的调度方法。
CN202311664606.0A 2023-12-06 2023-12-06 基于redis的无头浏览器RPA任务执行队列的调度方法及装置 Pending CN117873657A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311664606.0A CN117873657A (zh) 2023-12-06 2023-12-06 基于redis的无头浏览器RPA任务执行队列的调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311664606.0A CN117873657A (zh) 2023-12-06 2023-12-06 基于redis的无头浏览器RPA任务执行队列的调度方法及装置

Publications (1)

Publication Number Publication Date
CN117873657A true CN117873657A (zh) 2024-04-12

Family

ID=90589296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311664606.0A Pending CN117873657A (zh) 2023-12-06 2023-12-06 基于redis的无头浏览器RPA任务执行队列的调度方法及装置

Country Status (1)

Country Link
CN (1) CN117873657A (zh)

Similar Documents

Publication Publication Date Title
US9262205B2 (en) Selective checkpointing of links in a data flow based on a set of predefined criteria
US8112526B2 (en) Process migration based on service availability in a multi-node environment
US9535754B1 (en) Dynamic provisioning of computing resources
CN110704173A (zh) 任务调度方法、调度系统、电子设备及计算机存储介质
EP3357006A1 (en) Workflow service using state transfer
CN111459659A (zh) 数据处理方法、装置、调度服务器及介质
KR20150042873A (ko) 결함 내성 배치 처리
CN109033814B (zh) 智能合约触发方法、装置、设备及存储介质
CN112256417B (zh) 一种数据请求处理方法、装置及计算机可读存储介质
US7606906B2 (en) Bundling and sending work units to a server based on a weighted cost
US8612597B2 (en) Computing scheduling using resource lend and borrow
CN113190417A (zh) 微服务状态检测方法、模型的训练方法、设备及存储介质
CN112818201A (zh) 一种网络数据采集方法、装置、计算机设备及存储介质
US20090319662A1 (en) Process Migration Based on Exception Handling in a Multi-Node Environment
US10929054B2 (en) Scalable garbage collection
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN112187924A (zh) 服务请求方法、装置、设备及计算机存储介质
CN117873657A (zh) 基于redis的无头浏览器RPA任务执行队列的调度方法及装置
CN110650126A (zh) 一种防网站流量攻击方法、装置以及智能终端、存储介质
CN115858667A (zh) 用于同步数据的方法、装置、设备和存储介质
CN111752728B (zh) 消息传输方法及装置
CN113141407B (zh) 一种页面资源加载方法、装置和电子设备
CN114995982A (zh) 任务处理方法、装置及存储介质
CN115220907A (zh) 资源调度方法、装置、电子设备及存储介质
CN112181825A (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