CN112817748A - 一种基于安卓虚拟机处理任务的方法、计算机设备 - Google Patents
一种基于安卓虚拟机处理任务的方法、计算机设备 Download PDFInfo
- Publication number
- CN112817748A CN112817748A CN202110075707.9A CN202110075707A CN112817748A CN 112817748 A CN112817748 A CN 112817748A CN 202110075707 A CN202110075707 A CN 202110075707A CN 112817748 A CN112817748 A CN 112817748A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- task
- program
- rpa
- application
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种基于安卓虚拟机处理任务的方法,该方法由计算机设备执行,计算机设备上配置有多个虚拟机,虚拟机是基于安卓系统创建的,每个虚拟机上配置有第一应用与第一程序,第一程序被虚拟机执行时第一应用会检测到与第一程序相关联的模拟用户的操作。该方法包括:在接收到多个待处理任务时,确定第一虚拟机,将第一任务分配至第一虚拟机,调用第一虚拟机处理第一任务。本申请提供的方法,由于多个虚拟机可以同时运行,因此可以实现在同一时间并行处理多个待处理任务,从而提高RPA任务的处理效率。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种基于安卓虚拟机处理任务的方法、计算机设备。
背景技术
在一些行业中,员工需要不断地完成一些重复性的任务。比如,批量发送信息、发票验证、纸质文件录入等等。为了提高效率、减少人工错误,机器人流程自动化(RobotProcess Automation,RPA)技术应运而生。RPA技术将人工操作应用软件完成任务的过程交给计算机自动化执行,由计算机模拟人工对应用软件进行复制、粘贴、点击、输入等操作。实际工作中,企业将RPA程序部署在服务器上,用户将任务提交到服务器,然后服务器运行RPA程序,模拟人工与应用软件交互完成任务。
然而,单台服务器同一时间只能运行一个任务,在一个任务执行完成之后才能执行下一个任务,当任务大量并发时,不能及时响应,处理效率较低。
发明内容
本申请实施例提供了一种基于安卓虚拟机处理任务的方法、计算机设备,能够提高RPA任务的处理效率。
第一方面,本申请实施例提供了一种基于安卓虚拟机处理任务的方法,所述方法由计算机设备执行,所述计算机设备上配置有多个虚拟机,每个虚拟机上配置有第一应用与第一程序,所述第一程序被虚拟机执行时所述第一应用会检测到与所述第一程序相关联的模拟用户的操作,所述每个虚拟机均是基于安卓系统创建的,所述方法包括:
在接收到多个待处理任务时,确定第一虚拟机,所述第一虚拟机与第一任务对应,所述第一任务为所述多个待处理任务中的一个,所述第一虚拟机为所述多个虚拟机中的一个;
将所述第一任务分配给所述第一虚拟机;
调用所述第一虚拟机处理所述第一任务。
特别的,所述确定第一虚拟机,包括:
获取所述第一任务的标识;
根据所述第一任务的标识,确定所述第一虚拟机。
特别的,所述方法还包括:
获取虚拟机的标识;
所述根据所述第一任务的标识,确定所述第一虚拟机,包括:
根据所述第一任务的标识与所述虚拟机的标识,确定所述第一虚拟机。
特别的,所述根据所述第一任务的标识与所述虚拟机的标识,确定所述第一虚拟机,包括:
将与所述第一任务具有相同标识的虚拟机确定为所述第一虚拟机。
特别的,所述第一任务的标识是根据所述第一任务的类型确定的。
本申请实施例中,根据标识确定所述第一虚拟机,方便计算机设备管理虚拟机,能够更加有效的利用计算机设备的资源。
特别的,所述方法还包括:
创建第二虚拟机;
所述确定第一虚拟机,包括:
将所述第二虚拟机确定为所述第一虚拟机。
本申请实施例中,可以动态创建第二虚拟机,从而满足按需分配的需求。
特别的,在将所述第一任务分配给所述第一虚拟机之前,所述方法还包括:
判断所述第一虚拟机是否为空闲状态;
所述将所述第一任务分配给所述第一虚拟机,包括:
若所述第一虚拟机为空闲状态,则将所述第一任务分配给所述第一虚拟机。
特别的,所述方法还包括:
在所述第一虚拟机将所述第一任务处理完成之后,检测所述第一虚拟机处于空闲状态的时长是否大于或等于预设时长;
若是,则向所述第一虚拟机发送暂停指令,触发所述第一虚拟机暂停运行。
本申请实施例中,在检测到第一虚拟机处于空闲状态的时长大于或等于预设时长时,触发第一虚拟机进入暂停状态,从而为服务器节省资源。
特别的,所述方法还包括:
获取所述第一应用生成的当前界面,所述当前界面是由与所述第一程序相关联的模拟用户的操作触发的;
当所述当前界面为所述第一任务处理完成时所述第一应用生成的界面时,确定所述第一任务处理完成。
特别的,所述第一程序中包括用于获取所述第一应用的界面控件信息的程序,以及用于对所述界面控件进行模拟用户的操作的程序。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括:
调度单元,用于在接收到多个待处理任务时,确定第一虚拟机,所述第一虚拟机与第一任务对应,所述第一任务为所述多个待处理任务中的一个,所述第一虚拟机为所述多个虚拟机中的一个,将所述第一任务分配给所述第一虚拟机,调用所述第一虚拟机处理所述第一任务;
多个虚拟机,每个虚拟机上配置有应用与程序,所述程序被虚拟机执行时所述应用会检测到与所述程序相关联的用户操作,所述每个虚拟机均是基于安卓系统创建的。
特别的,所述虚拟机包括:
框架模块,用于提供所述第一程序与所述第一应用之间的交互接口;
任务执行模块,与所述框架模块相连,用于执行所述第一程序,并通过与所述第一程序对应的交互接口,将执行所述第一程序后触发的模拟用户的操作作用在所述第一应用上;
服务模块,与所述任务执行模块相连,用于驱动所述任务执行模块运行。
第三方面,本申请实施例还提供了一种计算机设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的基于安卓虚拟机处理任务的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如第一方面所述的基于安卓虚拟机处理任务的方法。
第五方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,当所述计算机程序产品在计算机上运行时,实现如第一方面所述的基于安卓虚拟机处理任务的方法。
本申请实施例提供一种基于安卓虚拟机处理任务的方法,该方法由计算机设备执行,计算机设备上配置有多个虚拟机,虚拟机是基于安卓系统创建的,每个虚拟机上配置有第一应用与第一程序,第一程序被虚拟机执行时第一应用会检测到与第一程序相关联的模拟用户的操作。计算机设备在接收到多个待处理任务时,确定第一虚拟机,第一虚拟机与第一任务对应,第一任务为多个待处理任务中的一个,第一虚拟机为多个虚拟机中的一个,将第一任务分配至第一虚拟机,调用第一虚拟机处理第一任务。由于安卓系统的虚拟机能够节省更多的资源,单台服务器上可以同时运行更多的虚拟机,因此可以实现在同一时间并行处理多个待处理RPA任务,从而提高RPA任务的处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种计算机设备10的结构示意图;
图2是本申请实施例提供的一种基于安卓虚拟机处理任务的方法200的流程示意图;
图3是本申请实施例提供的一种计算机设备30的结构示意图;
图4是本申请实施例提供的一种调度第一任务的方法400的流程示意图;
图5是本申请实施例提供的一种第一虚拟机处理第一任务的方法500的流程示意图;
图6是本申请实施例提供的一种处理装置600的结构示意图;
图7是本申请实施例提供的一种计算机设备700的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供了一种计算机设备10,如图1所示,该计算机设备10上配置有调度单元11和多个虚拟机12。在计算机设备10接收到多个待处理任务时,调度单元11按照任务调度顺序确定用于执行一个任务的虚拟机12,并将该任务分配给该虚拟机12。在将一个任务分配给一个虚拟机12之后,继续确定下一个任务对应的虚拟机12,并将下一个任务分配给对应的虚拟机12,直到将多个待处理任务都分配到对应的虚拟机12上。虚拟机12上配置有至少一个应用与至少一种程序,服务器中存储任务、应用、程序之间的映射关系。虚拟机12在接收到一个任务时,确定与该任务对应的应用与整体程序,虚拟机12自动执行与该任务对应的整体程序,整体程序执行完成时该任务处理完成。
计算机设备10可以是服务器,可以是企业内部的服务器,也可以是部署在第三方的服务器。计算机设备10一般运行Windows或Linux等宿主操作系统,虚拟机12作为应用程序在计算机设备10的宿主操作系统上运行,虚拟机12是基于安卓系统创建的。安卓系统的虚拟机能够节省更多的资源(包括内存、CPU、网络带宽等),可以在单台服务器上同时运行更多的虚拟机,进而实现更多的任务并发,从而降低服务器的投入成本。
在图1所示实施例的基础上,以处理一个任务的过程为例,对本申请实施例提供的一种基于安卓虚拟机处理任务的方法200进行说明,计算机设备10为服务器10,该方法200由服务器10执行,如图2所示,该方法包括:
S201:在接收到多个待处理任务时,确定第一虚拟机,第一虚拟机与第一任务对应,第一任务为多个待处理任务中的一个,第一虚拟机为多个虚拟机中的一个;
S202:将第一任务分配给第一虚拟机;
S203:调用第一虚拟机处理第一任务。
本申请实施例中,用户终端与服务器10通过网络直接通信,或者用户终端通过云平台与服务器10进行通信。调度单元11会不断接收到来自用户终端或云平台下发的待处理任务,当调度单元11接收第一任务时,第一任务是多个待处理任务中的一个,在多个虚拟机12中确定第一虚拟机,第一任务与第一虚拟机进行对应,并将第一任务自动分配给第一虚拟机,调用第一虚拟机自动处理第一任务,处理完成后将处理结果反馈给用户。
第一虚拟机上配置了与第一任务对应的第一应用、以及与第一任务对应的整体程序。第一虚拟机处理第一任务时,将第一任务分解为多个子步骤,将整体程序划分为多个子程序,一个子步骤对应一个子程序。按照流程处理第一子步骤,第一子步骤为多个子步骤中的一个,第一子步骤对应的子程序为第一程序,第一程序在被第一虚拟机执行时会触发模拟用户的操作,并将模拟用户的操作作用在第一应用上;第一应用会检测到模拟用户的操作,并且响应于模拟用户的操作,反馈模拟用户的操作的结果;当结果是操作成功对应的结果时,继续处理下一个子步骤,重复前述过程,直到多个子步骤均处理完成时,第一任务处理完成。模拟用户的操作是第一虚拟机模拟实际用户操作而自动执行的操作,即将人工操作第一应用完成第一任务的过程交给计算机自动化执行,模拟用户的操作包括但不限于模拟触摸点击(例如操控按钮点击)、模拟触摸滑动(例如操控列表滑动)、文本信息输入(例如操控在输入框里输入信息)、发送文本和图片、发送地址链接、复制、粘贴等。
由于安卓系统的虚拟机能够节省更多的资源,单台服务器上可以同时运行更多的虚拟机,因此可以实现在同一时间并行处理多个待处理任务,从而提高任务的处理效率。
在确定第一虚拟机之前,调度单元11不断接收到云平台发送的待处理任务,并解析任务列表,任务列表中可能是一个任务,也可能是多个任务。解析之后会获取到任务的任务名称、任务数据等信息。将一个或多个任务生成任务队列,然后进行任务调度,在对第一任务进行调度时,在一种实现方式中,调度单元11按照时间顺序对任务队列中的第一任务进行调度,即遵循先进先出的原则。
在另一种实现方式中,调度单元11按照一定的规则对任务队列中的第一任务进行优先级排序,按照优先级顺序对第一任务进行调度。比如,按照第一任务的业务类型进行排序,第一任务的业务类型及对应的优先级顺序可以按照实际需求进行预先设置,并将第一任务的业务类型与优先级的映射关系存储在服务器10中。业务类型可以根据实际行业场景进行划分,比如,以银行为例,其业务类型可以包括查询业务、审批业务、交易业务等等,其中一种业务类型可以包括多个任务,比如查询业务包括账户余额查询、账户交易账单查询、贷款查询等等。
调度单元11在调度第一任务时,确定出第一虚拟机,将与第一任务相关的数据(任务名称、任务数据等)发送给第一虚拟机,完成第一任务的分配。第一虚拟机根据接收的信息调用与第一任务对应的程序,对第一任务进行处理。以用户终端通过云平台与服务器10进行通信为例,用户通过终端上传多个票据并提交了核对票据的第一任务到云平台,云平台将第一任务发送给服务器10,服务器10会从云平台获取到对应的任务名称与票据数据,在第一任务分配时,同时将任务名称与票据数据发送给第一虚拟机。
一种实现方式中,在确定第一虚拟机时,可以按照以下步骤进行:
获取第一任务的标识;
根据第一任务的标识,确定第一虚拟机。
本申请实施例中,第一任务的标识是根据第一任务的类型确定的。其中,任务的类型指的是任务的业务类型。第一任务的标识可以是第一任务的业务类型,或者对不同业务类型进行编号,第一任务的标识是第一任务的业务类型的序号,或者根据不同的业务类型创建业务账号,第一任务的标识是第一任务的业务类型的业务账号。预先建立任务标识与虚拟机的映射关系,根据第一任务的标识确定第一虚拟机。
在确定第一虚拟机时,获取虚拟机的标识;则根据第一任务的标识,确定第一虚拟机,包括:
根据第一任务的标识与虚拟机的标识,确定第一虚拟机。
本申请实施例中,按照虚拟机的创建时间从前到后排序,按照顺序进行编号,将任务标识与虚拟机的编号进行关联,并存储关联关系。此时虚拟机的标识为虚拟机的编号,根据第一任务的标识与关联关系,查找第一任务对应的虚拟机的编号,从而确定第一虚拟机。当第一任务的标识是第一任务的业务类型的序号时,第一任务的业务类型的序号与第一虚拟机的编号可以是相同的,也可以是不同的。
特别的,根据第一任务的标识与虚拟机的标识,确定第一虚拟机,包括:
将与第一任务具有相同标识的虚拟机确定为第一虚拟机。
本申请实施例中,将业务账号作为虚拟机的标识,将业务账号与虚拟机进行关联,并存储关联关系。当任务的标识是任务的业务类型的业务账号时,第一任务的标识与第一虚拟机的标识相同,即第一任务的业务类型的业务账号与第一虚拟机的业务账号相同。此时,虚拟机12用于处理某一特定业务类型下的任务。
在另一种实现方式中,方法200还包括:创建第二虚拟机;
确定第一虚拟机,包括:将第二虚拟机确定为第一虚拟机。
以标识为业务类型为例,本申请实施例中,虚拟机12可以选择预先创建运行和动态创建运行两种模式。预先创建指的是针对已知的业务类型创建固定数量的虚拟机12,预先创建的虚拟机12可以预先启动,虚拟机12启动后处于就绪状态,以提高对任务的响应速度。动态创建指的是服务器10部署完成之后,在服务器10运行期间有新增的业务类型时,可以动态创建虚拟机12,并动态运行虚拟机12,从而满足按需分配的需求。
调度单元11在对第一任务进行分配时,可以直接针对第一任务动态创建第二虚拟机,将第二虚拟机确定为为第一虚拟机。或者,当调度单元11根据第一任务的标识,没有查找到与第一任务的标识对应的虚拟机时,针对第一任务动态创建第二虚拟机,将第二虚拟机确定为第一虚拟机。
由于服务器10接收来自多个用户终端的任务请求,任务队列中可能有多个同一业务类型的任务,需要将同一业务类型的多个任务分配给同一个虚拟机。因此,在将第一任务分配给第一虚拟机之前,方法200还包括:
判断第一虚拟机是否为空闲状态;
将第一任务分配给第一虚拟机,包括:
若第一虚拟机处于空闲状态,则将第一任务分配给第一虚拟机。
本申请实施例中,虚拟机12在执行任务的过程中,定时上报任务状态,包括任务处理中和任务完成。调度单元11接收虚拟机12反馈的任务状态,在将第一任务分配给第一虚拟机之前,判断第一虚拟机是否为空闲状态,如果是空闲状态,则将第一任务分配给第一虚拟机;如果不是空闲状态,则继续调度下一个任务,将第一任务设置成等待第一虚拟机的状态,当第一虚拟机反馈的任务状态为任务完成时,再将第一任务分配给第一虚拟机。
任务队列中可能只有一个任务、或者某一业务类型的任务只有一个,因此,方法200还包括:
在第一虚拟机将第一任务处理完成之后,检测第一虚拟机处于空闲状态的时长是否大于或等于预设时长;
若是,则向第一虚拟机发送暂停指令,触发第一虚拟机暂停运行。
本申请实施例中,当第一虚拟机处于空闲状态的时长大于或等于预设时长时,调度单元11向第一虚拟机发送暂停指令,第一虚拟机接收到暂停指令后,执行暂停操作,进入暂停状态。当有下一个任务需要分配到第一虚拟机时,向第一虚拟机发送第一指令,触发虚拟机从暂停状态转换到就绪状态。虚拟机的暂停状态相当于实际计算机的睡眠状态,长时间处于空闲状态的虚拟机进入暂停状态,能够节省服务器的内存资源,并提高CPU的运行速度。
在前述实施例的基础上可知,本申请实施例提供的基于安卓虚拟机处理任务的方法是一种适用于机器人流程自动化的方法,第一任务是多个RPA任务中的一个。针对计算机设备10为服务器,且服务器接收云平台下发的RPA任务,本申请实施例提供一种服务器30,如图3所示,服务器30包括RPA调度单元31、RPA虚拟机群组32,RPA虚拟机群组32中包括多个RPA虚拟机33。
RPA调度单元31用于对RPA任务进行管理与调度,在调度时将RPA任务分配给RPA虚拟机33。RPA虚拟机33用于对RPA任务进行处理。RPA虚拟机群组32同时接受RPA调度单元31的调度,实现RPA任务的并发。本申请实施例中,在创建RPA虚拟机群组32时,通过增加GPU渲染加速硬件和CPU虚拟化技术得到更多的虚拟机运行数量。
其中,RPA调度单元31包括但不限于RPA虚拟机管理调度模块311、RPA任务管理调度模块312、RPA任务接收通讯模块313、RPA任务分发通讯模块314。RPA虚拟机管理调度模块311用于管理RPA虚拟机33的创建、删除、启动、关闭、暂停、恢复、查询、数据清理、参数设置、以及监控RPA虚拟机33的运行状态,从而保障RPA虚拟机33的稳定运行。RPA虚拟机管理调度模块311根据RPA任务确定对应的RPA虚拟机33,并将确定的虚拟机的标识通过RPA任务管理调度模块312发送给RPA任务分发通讯模块314。
RPA任务管理调度模块312用于生成RPA任务队列、对RPA任务的优先级进行排序、监听RPA任务的执行状态,对RPA任务进行有序调度。
RPA任务接收通讯模块313用于与云平台通讯,接收RPA任务,并解析任务列表,将RPA任务交给RPA任务管理调度模块312,同时将RPA任务的执行状态和结果反馈给云平台。
RPA任务分发通讯模块314用于与RPA虚拟机33中的RPA任务执行模块331进行通讯,将RPA任务分发到各个RPA虚拟机33,并接收任务状态反馈。
RPA虚拟机33是通过对初始虚拟机进行RPA技术改造得到的,初始虚拟机可以是通用的安卓虚拟机、也可以包括市面流行的虚拟机、或研发定制的虚拟机,初始虚拟机配置安卓系统334和安卓应用335。本申请实施例中对RPA虚拟机33进行RPA技术改造主要是在初始虚拟机的基础上,扩展了包括但不限于RPA任务执行模块331、RPA服务模块332、RPA框架模块333,扩展的RPA任务执行模块331、RPA服务模块332、RPA框架模块333等模块为与任务对应的整体程序。
预先根据不同的业务类型设置不同的业务账号,RPA调度单元31在创建虚拟机33时将虚拟机33和业务账号进行关联,并存储关联关系。并且基于安卓系统334创建虚拟机33后将安卓应用335安装到虚拟机33,并将RPA任务执行模块331、RPA服务模块332、RPA框架模块333等模块配置到虚拟机33。
基于图3所示实施例,本申请实施例提供一种调度第一任务的方法400,如图4所示,服务器30上预先创建并启动了多个虚拟机33,该方法400包括:
S401:RPA任务接收通讯模块313持续接收来自云平台的RPA任务;
S402:判断是否收到RPA任务,若否,则返回S401,若是,则执行S403;
S403:RPA任务接收通讯模块313解析RPA任务列表,任务列表有多个RPA任务,将多个RPA任务发送给RPA任务管理调度模块312;
S404:RPA任务管理调度模块312将RPA任务生成任务队列;
S405:RPA任务管理调度模块312对任务队列中的RPA任务进行优先级排序;
S406:RPA任务管理调度模块312对第一任务进行调度,第一任务是多个RPA任务中的一个;
S407:RPA任务管理调度模块312向RPA虚拟机管理调度模块311确认第一任务对应的第一虚拟机;
S408:RPA虚拟机管理调度模块311根据第一任务的业务账号查找对应的第一虚拟机,若找到对应的第一虚拟机,则执行步骤S411;若没有找到对应的第一虚拟机,则执行步骤S409至步骤S410;
S409:RPA虚拟机管理调度模块311动态创建第一虚拟机;
S410:RPA虚拟机管理调度模块311动态启动第一虚拟机,第一虚拟机进入就绪状态,执行步骤S414;
S411:RPA虚拟机管理调度模块311判断第一虚拟机是否启动,若否,则执行步骤S410;若是,则执行步骤S412;
S412:RPA虚拟机管理调度模块311判断第一虚拟机是否处于暂停状态,若否,则执行步骤S414;若是,则执行步骤S413;
S413:RPA虚拟机管理调度模块311触发第一虚拟机进入就绪状态;
S414:RPA虚拟机管理调度模块311检查第一虚拟机的任务状态,判断第一虚拟机是否在执行任务,并将第一虚拟机的状态发送给RPA任务管理调度模块312;
S415:RPA任务管理调度模块312确认第一虚拟机是否处于空闲状态,若是,执行步骤S416至步骤S418;若否,则执行步骤S419,第一任务先挂起;
S416:RPA任务管理调度模块312将第一任务发送给RPA任务分发通讯模块314,由RPA任务分发通讯模块314将第一任务发送给第一虚拟机;
S417:第一虚拟机一定时间内处理第一任务;
S418:第一虚拟机向RPA任务分发通讯模块314发送第一任务的处理状态,并由RPA任务分发通讯模块314发送给RPA任务管理调度模块312,由RPA任务管理调度模块312发送给RPA虚拟机管理调度模块311与RPA任务接收通讯模块313;
S419:调度单元31重复步骤S406到步骤S418,进行RPA任务的调度;
S420:在第一虚拟机处理完第一任务后,RPA虚拟机管理调度模块311判断第一虚拟机处于空闲状态的时长是否大于或等于预设时长,若是,则执行步骤S421;
S421:触发第一虚拟机进入暂停状态。
本申请实施例中第一虚拟机在执行第一任务的过程中和以及任务完成后,均向RPA任务分发通讯模块314发送任务执行状态,RPA任务管理调度模块312在第一任务处理过程中,实时确认第一任务的处理状态,判断第一任务是否处理完成,并将处理状态发送给RPA虚拟机管理调度模块311与RPA任务接收通讯模块313,在RPA任务接收通讯模块313接收到任务状态时,将任务处理状态反馈给云平台,从而用户在终端能够实时确认任务状态。在第一任务分配至第一虚拟机后,RPA任务管理调度模块312继续调度下一个任务。
本申请实施例中,第一虚拟机是与第一任务对应的RPA虚拟机33,如图3所示,第一虚拟机包括但不限于RPA任务执行模块331、RPA服务模块332、RPA框架模块333、安卓系统334、安卓应用335。
安卓系统334是第一虚拟机的操作系统,安卓系统334兼容安卓应用335,在基于安卓系统创建第一虚拟机时,对安卓系统334进行虚拟机相关特性的改造,比如设置启动速度、设置虚拟存储卡等。
安卓应用335即第一应用,是具备RPA流程自动化需求的应用,可以是安卓行业应用、也可以是其他具备RPA流程自动化需求的安卓应用。安卓应用335可以由第三方提供,比如ARM平台,或从应用商店下载。
RPA框架模块333包括完成第一任务所需要的自动化框架、事件注入、权限获取等子程序,比如用于获取应用的界面控件信息的程序,以及用于对界面控件进行模拟用户的操作的程序。该模块使用的子程序可以参考Xposed、Hook、AccessbilityService、反射等框架和技术。RPA框架模块333提供了第一程序与第一应用之间的交互接口,第一程序是多个子程序中的一个,不同的子程序可以对应不同的交互接口。
RPA服务模块332用于启动需要安卓应用335,并且与RPA任务执行模块331相连,用于驱动运行RPA任务执行模块331运行。RPA服务模块332为后台运行,为第一任务的执行提供安卓后台服务,此时前台运行的是安卓应用335。
RPA任务执行模块331,与RPA框架模块333相连,用于执行第一程序,并通过与第一程序对应的交互接口,将执行第一程序后触发的模拟用户的操作作用在第一应用上。RPA任务执行模块331在RPA服务模块332中运行。RPA任务执行模块331不能直接操控第一应用,而是需要通过RPA框架模块333提供的交互接口将执行第一程序后触发的模拟用户的操作作用在第一应用上。
本申请实施例中,安卓应用335在运行期间,只与安卓系统334直接通信。第一虚拟机启动后,首先加载RPA服务模块332,然后RPA服务模块332加载RPA任务执行模块331,并且RPA服务模块332启动安卓应用335。处理第一任务时,RPA任务执行模块331执行第一程序,通过调用RPA框架模块333提供的交互接口,然后连接到安卓系统334的接口,由安卓系统334与安卓应用335通信,将执行第一程序后触发的模拟用户的操作作用在第一应用上。从而实现安卓应用335无感知地响应于模拟用户的操作,即安卓应用335认为用户操作来自于实际用户。
基于前述实施例,以预先启动第一虚拟机为例,对本申请实施例提供的第一虚拟机处理第一任务的方法500进行说明,如图5所示,该方法包括:
S501:启动安卓系统334;
S502:启动RPA服务模块332,RPA服务模块332进入后台运行;
S503:判断安卓应用335是否启动,若是,则执行步骤S505;若否,则执行步骤S504;
S504:RPA服务模块332启动安卓应用335;
S505:运行RPA任务执行模块331;
S506:RPA任务执行模块331定位到安卓应用335,并监视安卓应用335的界面变化;
S507:RPA任务执行模块331进入接收任务状态;
S508:RPA任务执行模块331判断是否接收到第一任务,若否,则执行步骤S507;若是,则执行步骤S509;
S509:RPA任务执行模块331将第一任务按照执行流程分解为多个子步骤,并处理第一子步骤;
S510:RPA任务执行模块331执行第一程序;
S511:RPA任务执行模块331获取安卓应用335的界面的控件信息;
S512:RPA任务执行模块331操控安卓应用335的界面的控件;
S513:RPA任务执行模块331等待安卓应用335对操作结果的反馈;
S514:重复执行步骤S510到步骤S513,直至第一任务各子步骤执行完毕;
S515:第一任务执行完毕后,上报任务状态到RPA调度单元31。
本申请实施例中,通过RPA框架模块333实时监视安卓应用335的界面变化,界面可以显示出来,也可以不显示。本申请实施例提供的方法,还包括:
获取第一应用生成的当前界面,当前界面是由与第一程序相关联的模拟用户的操作触发的;
在当前界面为第一任务处理完成时第一应用生成的界面时,确定第一任务处理完成。
RPA任务执行模块331启动后会定位到安卓应用335,RPA任务执行模块331执行第一程序时,通过RPA框架模块333获取安卓应用335的界面的控件信息,并通过RPA框架模块333提供的交互接口,操作安卓应用335的界面的控件,使执行第一程序后触发的模拟用户的操作作用在第一应用上,在适当的延之后第一应用的界面会发生变化。
获取第一应用生成的当前界面,如果当前界面是第一程序被执行成功时第一应用生成的界面,则继续执行下一个子步骤对应的子程序,直到当前界面为第一任务处理完成时第一应用生成的界面,此时确定第一任务处理完成。
总之,本申请实施例提供了方便使用和运行的高效的RPA服务器,并在RPA服务器上部署了多个RPA虚拟机,提高单台服务器上运行RPA任务的并发数,从而降低了RPA服务器的投入成本,提高了RPA任务的处理效率。
图6为本申请实施例提供的处理装置600的示意性框图,该处理装置600包括接收单元601、处理单元602、发送单元603。
接收单元601,用于接收待处理任务;
处理单元602,用于在接收到多个待处理任务时,确定第一虚拟机,第一虚拟机与第一任务对应,第一任务为多个待处理任务中的一个,第一虚拟机为多个虚拟机中的一个;将第一任务分配给第一虚拟机;调用第一虚拟机处理第一任务。
发送单元603,用于反馈任务处理状态与结果。
应理解的是,本申请实施例的处理装置600可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图2所示的方法,通过软件实现图2所示的方法时,控制装置600及其各个模块也可以为软件模块。
图7为本申请实施例提供的一种计算机设备的结构示意图。如图7所示,该设备700包括处理器701、存储器702、通信接口703和总线704。其中,处理器701、存储器702、通信接口703通过总线704进行通信,也可以通过无线传输等其他手段实现通信。该存储器702用于存储指令,该处理器701用于执行该存储器702存储的指令。该存储器702存储程序代码7021,且处理器701可以调用存储器702中存储的程序代码7021执行图2所示的方法。
应理解,在本申请实施例中,处理器701可以是CPU,处理器701还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器702还可以包括非易失性随机存取存储器。该存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double datadate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线704除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图7中将各种总线都标为总线704。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于安卓虚拟机处理任务的方法,所述方法由计算机设备执行,其特征在于,所述计算机设备上配置有多个虚拟机,每个虚拟机上配置有第一应用与第一程序,所述第一程序被虚拟机执行时所述第一应用会检测到与所述第一程序相关联的模拟用户的操作,所述每个虚拟机均是基于安卓系统创建的,所述方法包括:
在接收到多个待处理任务时,确定第一虚拟机,所述第一虚拟机与第一任务对应,所述第一任务为所述多个待处理任务中的一个,所述第一虚拟机为所述多个虚拟机中的一个;
将所述第一任务分配给所述第一虚拟机;
调用所述第一虚拟机处理所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述确定第一虚拟机,包括:
获取所述第一任务的标识;
根据所述第一任务的标识,确定所述第一虚拟机。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取虚拟机的标识;
所述根据所述第一任务的标识,确定所述第一虚拟机,包括:
根据所述第一任务的标识与所述虚拟机的标识,确定所述第一虚拟机。
4.根据权利要求2或3所述的方法,其特征在于,所述第一任务的标识是根据所述第一任务的类型确定的。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
创建第二虚拟机;
所述确定第一虚拟机,包括:
将所述第二虚拟机确定为所述第一虚拟机。
6.根据权利要求1所述的方法,其特征在于,在将所述第一任务分配给所述第一虚拟机之前,所述方法还包括:
判断所述第一虚拟机是否为空闲状态;
所述将所述第一任务分配给所述第一虚拟机,包括:
若所述第一虚拟机为空闲状态,则将所述第一任务分配给所述第一虚拟机。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一应用生成的当前界面,所述当前界面是由与所述第一程序相关联的模拟用户的操作触发的;
当所述当前界面为所述第一任务处理完成时所述第一应用生成的界面时,确定所述第一任务处理完成。
8.根据权利要求1所述的方法,其特征在于,所述第一程序中包括用于获取所述第一应用的界面控件信息的程序,以及用于对所述界面控件进行模拟用户的操作的程序。
9.一种计算机设备,其特征在于,所述计算机设备包括:
调度单元,用于在接收到多个待处理任务时,确定第一虚拟机,所述第一虚拟机与第一任务对应,所述第一任务为所述多个待处理任务中的一个,所述第一虚拟机为所述多个虚拟机中的一个,将所述第一任务分配给所述第一虚拟机,调用所述第一虚拟机处理所述第一任务;
多个虚拟机,每个虚拟机上配置有第一应用与第一程序,所述第一程序被虚拟机执行时所述第一应用会检测到与所述第一程序相关联的用户操作,所述每个虚拟机均是基于安卓系统创建的。
10.根据权利要求9所述的服务器,其特征在于,所述虚拟机包括:
框架模块,用于提供所述第一程序与所述第一应用之间的交互接口;
任务执行模块,与所述框架模块相连,用于执行所述第一程序,并通过与所述第一程序对应的交互接口,将执行所述第一程序后触发的模拟用户的操作作用在所述第一应用上;
服务模块,与所述任务执行模块相连,用于驱动所述任务执行模块运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110075707.9A CN112817748A (zh) | 2021-01-20 | 2021-01-20 | 一种基于安卓虚拟机处理任务的方法、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110075707.9A CN112817748A (zh) | 2021-01-20 | 2021-01-20 | 一种基于安卓虚拟机处理任务的方法、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817748A true CN112817748A (zh) | 2021-05-18 |
Family
ID=75858530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110075707.9A Pending CN112817748A (zh) | 2021-01-20 | 2021-01-20 | 一种基于安卓虚拟机处理任务的方法、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817748A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420189A (zh) * | 2021-08-20 | 2021-09-21 | 达而观科技(北京)有限公司 | 一种基于RPA的智能终端安卓App控制方法及系统 |
CN113835830A (zh) * | 2021-09-01 | 2021-12-24 | 北京来也网络科技有限公司 | 基于ai的rpa集群管理方法、装置以及存储介质 |
CN115061809A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 基于安卓的rpa多任务调度方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150012919A1 (en) * | 2013-07-05 | 2015-01-08 | Blue Prism Limited | System for Automating Processes |
CN106933634A (zh) * | 2017-03-09 | 2017-07-07 | 北京奇虎科技有限公司 | 安卓应用的安装方法、装置和电子设备 |
US20200074329A1 (en) * | 2018-08-29 | 2020-03-05 | Accenture Global Solutions Limited | Intelligent adaptor service in unified automation platforms for robotic process automation |
CN111026500A (zh) * | 2019-11-14 | 2020-04-17 | 网联清算有限公司 | 云计算模拟平台及其创建方法、装置和存储介质 |
WO2020223371A1 (en) * | 2019-04-30 | 2020-11-05 | Automation Anywhere, Inc. | Robotic process automation system with separate platform, bot and command class loaders |
US20200348964A1 (en) * | 2019-04-30 | 2020-11-05 | Automation Anywhere, Inc. | Platform agnostic robotic process automation |
-
2021
- 2021-01-20 CN CN202110075707.9A patent/CN112817748A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150012919A1 (en) * | 2013-07-05 | 2015-01-08 | Blue Prism Limited | System for Automating Processes |
CN106933634A (zh) * | 2017-03-09 | 2017-07-07 | 北京奇虎科技有限公司 | 安卓应用的安装方法、装置和电子设备 |
US20200074329A1 (en) * | 2018-08-29 | 2020-03-05 | Accenture Global Solutions Limited | Intelligent adaptor service in unified automation platforms for robotic process automation |
WO2020223371A1 (en) * | 2019-04-30 | 2020-11-05 | Automation Anywhere, Inc. | Robotic process automation system with separate platform, bot and command class loaders |
US20200348964A1 (en) * | 2019-04-30 | 2020-11-05 | Automation Anywhere, Inc. | Platform agnostic robotic process automation |
CN111026500A (zh) * | 2019-11-14 | 2020-04-17 | 网联清算有限公司 | 云计算模拟平台及其创建方法、装置和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420189A (zh) * | 2021-08-20 | 2021-09-21 | 达而观科技(北京)有限公司 | 一种基于RPA的智能终端安卓App控制方法及系统 |
CN113835830A (zh) * | 2021-09-01 | 2021-12-24 | 北京来也网络科技有限公司 | 基于ai的rpa集群管理方法、装置以及存储介质 |
CN115061809A (zh) * | 2022-08-08 | 2022-09-16 | 杭州实在智能科技有限公司 | 基于安卓的rpa多任务调度方法及系统 |
CN115061809B (zh) * | 2022-08-08 | 2022-11-11 | 杭州实在智能科技有限公司 | 基于安卓的rpa多任务调度方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112817748A (zh) | 一种基于安卓虚拟机处理任务的方法、计算机设备 | |
CN107291547B (zh) | 一种任务调度处理方法、装置及系统 | |
KR100509794B1 (ko) | 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 | |
EP3410288B1 (en) | Online upgrade method, device and system | |
CN104834602B (zh) | 一种程序发布方法、装置和程序发布系统 | |
US20230048833A1 (en) | Method, apparatus, and storage medium for scheduling tasks | |
CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
CN114968567A (zh) | 用于分配计算节点的计算资源的方法、装置和介质 | |
CN113157411A (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN110659104B (zh) | 一种业务监控方法及相关设备 | |
CN105933136A (zh) | 一种资源调度方法及系统 | |
CN112711522B (zh) | 一种基于docker的云测试方法、系统及电子设备 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN110764911A (zh) | 基于订单的资源调度方法、装置和控制系统 | |
CN115840617A (zh) | 一种调试方法、系统及相关装置 | |
CN115658248A (zh) | 任务调度方法方法、装置、电子设备及存储介质 | |
CN115309558A (zh) | 一种资源调度管理系统、方法、计算机设备及存储介质 | |
CN112925640B (zh) | 一种集群训练节点分配方法、电子设备 | |
CN115277398A (zh) | 一种集群的网络配置方法和装置 | |
CN115048204A (zh) | 一种作业调度方法、作业调度系统及存储介质 | |
CN111045778B (zh) | 一种虚拟机的创建方法、装置、服务器及存储介质 | |
CN113900811A (zh) | 事件驱动的任务调度的方法及装置 | |
CN108108234A (zh) | 一种分布式任务管理方法及系统 | |
CN114996081A (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 |