本发明涉及rpa,尤其是一种微信rpa场景下的并发操作系统和方法。
背景技术:
1、rpa(robotic process automation)是机器人流程自动化。企业通过部署rpa工具,协助企业员工去处理大量基于规则的、重复的工作流程任务,减少人工错误,提高企业运营效率。
2、随着微信的广泛应用,越来越多的企业使用微信与客户保持联系,也催生了微信在rpa自动化中的各种使用场景,例如客服、技术支持、售后等采用的智能回复和目标群体的个性化推荐。微信自动化的应用在rpa流程中占有相当一部分的比例。
3、目前的rpa主要通过模拟键盘鼠标的操作来完成带ui界面的应用程序的操作。其底层技术包含对user32库的sendinput接口等的调用,在windows用户界面的体现之一是可见的鼠标的移动和点击。
4、但是,当自动化任务的量很大时,性能的瓶颈可能会集中在单线程的键盘鼠标操作和ui界面响应中,因此,如果能提升键盘鼠标的利用率,就能提升自动化的效率。
技术实现思路
1、针对现有技术的不足,本发明提供一种微信rpa场景下的并发操作系统和方法。
2、本发明的技术方案为:一种微信rpa场景下的并发操作系统,包括任务分配和调度模块、任务执行模块、结果验证模块;
3、其中,所述的任务分配和调度模块用于根据计算机资源占用情况,适当调整任务的并发度;并根据计算机任务中非焦点抢夺指令在任务中的占比,进行任务的合理并发分配;
4、所述的任务执行模块通过将焦点抢夺和微信主窗口视为临界资源,同时将微信中非必要焦点抢夺的操作使用sendmessage接口替代,让微信在遮挡的状态下继续执行操作;通过接收的任务进行指令和参数解析,并判定任务是否为执行目标,如果是则对执行目标进行自动化操作,如果不是,则执行机器人rpa通用操作;
5、所述的结果验证模块用于验证机器人执行每条操作指令后的结果是否成功;若成功,则执行下一条操作指令;若失败,将失败操作记录到日志中或发出告警,并重试三次;若仍然失败,根据指令要求结束当前任务或跳过该操作指令继续执行。
6、作为优选的,所述的任务分配和调度模块根据计算机资源进行分配和调度,具体为:当计算机资源占用率较低时,增加待执行的新任务让机器人并发处理,或让机器人继续执行暂停中的任务;
7、当计算机资源占用率较高时,停止向机器人增加新任务,必要时暂停一些执行中的任务。
8、作为优选的,若执行中的总体任务的非焦点抢夺指令占比较低,则在增加新任务或执行暂停中任务时,优先分配非焦点抢夺指令占比高的任务,或优先暂停非焦点抢夺指令占比低的任务。
9、本发明还提供一种微信rpa场景下的并发操作方法,包括以下步骤:
10、s1)、通过任务执行模块接收并解析机器人的rpa操作指令和参数;
11、s2)、判断执行目标操作软件是否为微信,如果是,则执行步骤s3),如果否,则执行步骤s4);
12、s3)、执行微信自动化操作;
13、s4)、执行通用rpa操作。
14、作为优选的,步骤s3)中,所述的执行微信自动化操作具体包括如下步骤:
15、s31)、对微信窗口进行加锁操作;
16、s32)、判断该流程是否为抢夺焦点,若是,进入步骤s33),否则进入步骤s37);
17、s33)、对焦点抢夺进行加锁操作;
18、s34)、执行原rpa的流程,
19、s35)、对焦点抢夺进行解锁操作;
20、s36)、对微信窗口进行解锁操作,完成操作。
21、作为优选的,步骤s37)具体为:获取微信窗口句柄、元素坐标信息,调用sendmessage接口,并对微信窗口进行解锁操作。
22、作为优选的,步骤s4)中,执行通用rpa操作具体包括以下步骤:
23、s41)、对焦点抢夺进行加锁操作;
24、s42)、调用原rpa的实现流程;
25、s43)、对焦点抢夺进行解锁操作。
26、作为优选的,所述的加锁操作是指对需要加锁的对象建立一个全局静态变量,即该变量的生命周期与机器人的保持一致,然后获取该变量的互斥锁。
27、作为优选的,所述的解锁操作是指释放该变量的互斥锁。
28、本发明的有益效果为:
29、1、本发明通过将焦点抢夺和微信主窗口视为临界资源,同时将微信中非必要焦点抢夺的操作使用sendmessage接口替代,让微信在遮挡(非焦点抢夺)的状态下继续执行操作,降低微信的焦点抢夺占用率,达到了同时操作微信和其他软件的效果,提升了并发程度;
30、2、本发明在操作微信的同时,能兼容微信处于被遮挡(非焦点抢夺)的状态,解决与其他软件抢夺焦点的问题;
31、3、本发明sendmessage接口可被多线程调用,相比于一般rpa流程中单线程操作的键盘鼠标,其并发程度更高。
1.一种微信rpa场景下的并发操作系统,其特征在于:包括任务分配和调度模块、任务执行模块、结果验证模块;
2.根据权利要求1所述的一种微信rpa场景下的并发操作系统,其特征在于:所述的任务分配和调度模块根据计算机资源进行分配和调度,具体为:当计算机资源占用率较低时,增加待执行的新任务让机器人并发处理,或让机器人继续执行暂停中的任务;
3.根据权利要求1所述的一种微信rpa场景下的并发操作系统,其特征在于:若执行中的总体任务的非焦点抢夺指令占比较低,则在增加新任务或执行暂停中任务时,优先分配非焦点抢夺指令占比高的任务,或优先暂停非焦点抢夺指令占比低的任务。
4.一种微信rpa场景下的并发操作方法,其特征在于,包括以下步骤:
5.根据权利要求4所述的一种微信rpa场景下的并发操作方法,其特征在于:步骤s3)中,所述的执行微信自动化操作具体包括如下步骤:
6.根据权利要求4所述的一种微信rpa场景下的并发操作方法,其特征在于:步骤s37)具体为:获取微信窗口句柄、元素坐标信息,调用sendmessage接口,并对微信窗口进行解锁操作。
7.根据权利要求4所述的一种微信rpa场景下的并发操作方法,其特征在于:步骤s4)中,执行通用rpa操作具体包括以下步骤:
8.根据权利要求4所述的一种微信rpa场景下的并发操作方法,其特征在于:所述的加锁操作是指对需要加锁的对象建立一个全局静态变量,即该变量的生命周期与机器人的保持一致,然后获取该变量的互斥锁。
9.根据权利要求4所述的一种微信rpa场景下的并发操作方法,其特征在于:所述的解锁操作是指释放该变量的互斥锁。