CN117520682A - 一种rpa流程的缓存管理方法、装置、计算机设备和介质 - Google Patents
一种rpa流程的缓存管理方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN117520682A CN117520682A CN202311473080.8A CN202311473080A CN117520682A CN 117520682 A CN117520682 A CN 117520682A CN 202311473080 A CN202311473080 A CN 202311473080A CN 117520682 A CN117520682 A CN 117520682A
- Authority
- CN
- China
- Prior art keywords
- instance
- rpa
- flow
- sub
- canvas
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 120
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003139 buffering effect Effects 0.000 claims 2
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011022 operating instruction Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004801 process automation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种RPA流程的缓存管理方法、装置、计算机设备和介质,涉及计算机技术领域,方法包括:利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各页面组件实例中的画布实例;当接收到数据更新指令时,利用数据更新指令对缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对更新后的画布实例进行视图刷新;当接收到流程切换操作时,将RPA子流程对应的页面组件实例切换至HTML文档树,并在确定页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新;可单独缓存画布实例,以单独控制画布实例的更新及视图刷新。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种RPA流程的缓存管理方法、装置、计算机设备和介质。
背景技术
RPA(Robotic Process Automation,机器人流程自动化)是一种可通过机器人软件模拟人工操作从而实现计算机操作自动化的技术。目前,RPA开发工具通常提供有流程图编排功能,而这一功能需由多种框架共同实现,如可同时采用前端框架(如React、Vue)和图编辑引擎(如Antv/x6)实现流程图编排功能。
相关技术中,RPA子流程页面通常对应有页面组件实例和画布实例。其中,页面组件实例基于前端框架创建,用于记录RPA子流程页面中的数据;画布实例属于页面组件实例中的数据,基于图编辑引擎创建,并用于记录画布数据。流程图编排从本质上来说便是对画布实例的编辑操作。为实现页面缓存,前端框架一般提供有Keepalive组件,用于对页面组件实例进行缓存。然而,由于Keepalive组件与图编辑引擎间存在兼容性问题,导致在采用该缓存组件对RPA子流程页面的页面组件实例进行缓存时,此时若对页面组件实例中的画布实例进行编辑,则容易出现页面渲染错误的情况,进而容易为用户带来不好的使用体验。
因此,如何对RPA子流程的页面组件实例和画布实例进行缓存,以避免对画布实例进行编辑时容易出现的页面渲染错误问题,是本领域技术人员亟需解决的技术问题。
发明内容
本发明的目的是提供一种RPA流程的缓存管理方法、装置、计算机设备和介质,可使用单独的缓存模块对画布实例进行单独缓存,以对画布实例的更新及视图刷新进行单独控制,从而能够保证RPA流程的正常更新。
为解决上述技术问题,本发明提供了一种RPA流程的缓存管理方法,包括:
利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;
当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;
当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
可选地,所述利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例,包括:
在接收到流程启动操作时,判断已缓存页面组件实例的数量是否超过预设阈值;
若超过所述预设阈值,则在所述已缓存页面组件实例中确定待淘汰页面组件实例,销毁所述待淘汰页面组件实例,并在缓存模块中删除已销毁的画布实例;
创建当前的待启动RPA子流程对应的页面组件实例,利用Keepalive组件缓存所述待启动RPA子流程的页面组件实例,并利用缓存模块缓存所述待启动RPA子流程的画布实例;
相应的,在利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新之前,还包括:
判断当前的待更新RPA子流程的画布实例是否保存于所述缓存模块;
若是,则针对所述待更新RPA子流程的画布实例进入所述利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新的步骤;
若否,则根据所述数据更新指令修改所述待更新RPA子流程的流程文件并保存;
相应的,在将所述RPA子流程对应的页面组件实例切换至HTML文档树之前,还包括:
判断当前的待切换RPA子流程对应的页面组件实例是否已缓存;
若是,则进入所述将所述RPA子流程对应的页面组件实例切换至HTML文档树的步骤;
若否,则等待所述待切换RPA子流程对应的页面组件实例已创建并缓存后进入所述将所述RPA子流程对应的页面组件实例切换至HTML文档树的步骤。
可选地,所述创建当前的待启动RPA子流程对应的页面组件实例,包括:
根据所述待启动RPA子流程的流程名称,判断所述待启动RPA子流程对应的页面组件实例是否注册;
若否,则创建所述待启动RPA子流程对应的页面组件实例,并基于所述待启动RPA子流程的流程名称全局注册所述待启动RPA子流程对应的页面组件实例。
可选地,在接收流程启动操作之前,还包括:
根据应用中所有的RPA子流程,构建所述应用的组件数据库。
可选地,在将所述RPA子流程对应的页面组件实例切换至HTML文档树之后,还包括:
利用钩子函数将所述RPA子流程的页面调整至上次显示的位置。
可选地,还包括:
当接收到流程删除操作时,删除待删除RPA子流程对应的页面组件实例和所述待删除的RPA子流程在所述缓存模块的画布实例;
可选地,还包括:
当接收到应用关闭操作时,删除所有已缓存的页面组件实例及所述缓存模块中的所有画布实例。
本发明还提供一种RPA流程的缓存管理装置,包括:
缓存管理模块,用于利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;
数据更新模块,用于当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;
流程切换模块,用于当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
本发明还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的RPA流程的缓存管理方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述RPA流程的缓存管理方法的步骤。
本发明提供了一种RPA流程的缓存管理方法,包括:利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
可见,本发明除了利用Keepalive组件缓存RPA子流程对应的页面组件实例,还可利用缓存模块单独缓存各页面组件实例中的画布实例。随后,在接收到数据更新指令时,可利用数据更新指令对缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对更新后的画布实例进行视图刷新,以避免出现视图刷新错误。而在接收到流程切换操作时,将RPA子流程对应的页面组件实例切换至HTML文档树,并在确定页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新,即本发明可使用单独的缓存模块对画布实例进行单独缓存,以对画布实例的更新及视图刷新进行单独控制,从而能够RPA子流程的正常更新。本发明还提供一种RPA流程的缓存管理装置、计算机设备和介质,具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种RPA流程的缓存管理方法的流程图;
图2为本发明实施例所提供的一种具体RPA流程的缓存管理方法的流程图;
图3为本发明实施例所提供的一种具体RPA流程的缓存数据管理方法的流程图;
图4为本发明实施例所提供的一种RPA流程的缓存管理装置的结构框图;
图5为本发明实施例所提供的一种计算机设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
RPA(Robotic Process Automation,机器人流程自动化)是一种可通过机器人软件模拟人工操作从而实现计算机操作自动化的技术。目前,RPA开发工具通常提供有流程图编排功能,而这一功能需由多种框架共同实现,如可同时采用前端框架(如React、Vue)和图编辑引擎(如Antv/x6)实现流程图编排功能。
相关技术中,RPA子流程页面通常对应有页面组件实例和画布实例。其中,页面组件实例基于前端框架创建,用于记录RPA子流程页面中的数据;画布实例属于页面组件实例中的数据,基于图编辑引擎创建,并用于记录画布数据。流程图编排从本质上来说便是对画布实例的编辑操作。进一步,为实现页面缓存,前端框架一般提供有Keepalive组件,用于对页面组件实例进行缓存。然而,由于Keepalive组件与图编辑引擎间存在兼容性问题,导致在采用该缓存组件对RPA子流程页面的页面组件实例进行缓存时,此时若对页面组件实例中的画布实例进行编辑,则容易出现页面渲染错误的情况,进而容易为用户带来不好的使用体验。
鉴于此,本发明提供了一种RPA流程的缓存管理方法,可使用缓存模块单独缓存画布实例,以对画布实例的更新和刷新进行单独控制,从而可保证RPA子流程的正常更新。
请参考图1,图1为本发明实施例所提供的一种RPA流程的缓存管理方法的流程图。值得指出的是,本发明实施例中RPA流程的缓存管理方法基于C/S架构(客户端和服务器)实现,特性在于图编辑引擎的大部分逻辑在用户端本地完成,而不由远端服务器完成。本方法可以包括:
S101、利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各页面组件实例中的画布实例。
值得指出的是,相关技术中仅会使用Keepalive组件对RPA子流程的页面组件实例进行缓存。然而,对RPA子流程的编辑主要涉及对页面组件实例中画布实例的编辑,而Keepalive组件对画布实例的缓存更新兼容性较差。例如,假若页面组件实例未被加载至HTML文档树并进行可视化输出的话,强行对Keepalive组件中的画布实例进行数据更新,容易导致画布实例在更新过后立刻触发视图刷新,进而导致因画布实例无法基于HTML文档树进行定位而出现视图刷新错误的问题,造成如多个连接桩(一种可视化图标)渲染汇聚在同一点上,导致两个节点间连线的起始位置错误的不良结果,影响用户体验。因此,本发明实施例还单独增加了一个缓存模块,用于对画布实例的数据更新、视图刷新进行单独控制,从而能够避免因Keepalive组件与图编辑引擎间的兼容性问题所容易导致的页面渲染错误的问题。同时,本发明实施例通过使用缓存模块,还可以避免每次切换RPA子流程页面的时候需要重新创建画布的缺陷,从而可提升子流程页面切换的速度。
进一步,为避免占用过多资源,本发明实施例在利用Keepalive组件缓存页面组件实例时,可设置预设阈值,用于限制最大缓存数量,例如最多可缓存15个页面组件实例。在开启某个RPA子流程时,若确定已缓存页面组件实例的数量已超过预设阈值,则可在已缓存页面组件实例中确定待淘汰页面组件实例,销毁待淘汰页面组件实例,并在缓存模块中删除已销毁的画布实例,进而可实现页面组件实例的动态管理。需要指出的是,待淘汰页面组件实例的销毁可由Keepalive组件自行执行,而对缓存模块已销毁画布实例的删除需要单独为缓存模块发送删除消息来控制该模块进行删除。
基于此,利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各页面组件实例中的画布实例,可以包括:
步骤11:在接收到流程启动操作时,判断已缓存页面组件实例的数量是否超过预设阈值;若是,则进入步骤12;若否,则进入步骤13;
步骤12:在已缓存页面组件实例中确定待淘汰页面组件实例,销毁待淘汰页面组件实例,在缓存模块中删除已销毁的画布实例,并进入步骤13;
步骤13:创建当前的待启动RPA子流程对应的页面组件实例,利用Keepalive组件缓存待启动RPA子流程的页面组件实例,并利用缓存模块缓存待启动RPA子流程的画布实例。
具体的,响应于当前缓存的页面组件实例个数已经达到阈值,可触发页面组件实例的onBeforeUnmount(卸载前)钩子,在此钩子上销毁画布实例,并给缓存模块发送删除画布的消息,缓存模块接收到消息后删除画布实例。
进一步,应当指出的是,一个RPA流程应用中通常包含多个RPA子流程。同时,为确保数据一致性,在进行数据更新时,通常需要将更新作用于RPA流程应用中的所有RPA子流程。为实现这一效果,本发明实施例还可根据应用中所有子流程,构建应用的组件数据库,其中,本发明实施例中可以将应用中各个流程页面的组件实例,以{流程名字:组件实例}键值对的形式保存在内存中。进而,仅需遍历这一组件数据库,便可快速查询RPA流程应用中的所有RPA子流程,以便对所有RPA子流程进行更新。
进一步,本发明实施例中还可以利用Vue Router(路由管理器)管理路由,给定匹配模式如graph/:flowName的路由映射到一个组件,以基于VueRouter实现动态创建流程页面组件实例并注册,使得所有组件实例共用一个Vue文件,对于组件实例的管理更加快捷和方便。基于此,创建当前的待启动RPA子流程对应的页面组件实例,可以包括:
步骤21:根据待启动RPA子流程的流程名称,判断待启动RPA子流程对应的页面组件实例是否注册;若是,则无需创建待启动RPA子流程的页面组件实例;若否,则进入步骤22;
步骤22:创建待启动RPA子流程对应的页面组件实例,并基于待启动RPA子流程的流程名称全局注册待启动RPA子流程对应的页面组件实例。
具体的,当用户打开某个子流程时,可判断组件注册模块中是否存在当前流程名字的页面组件实例,如果不存在,则可先创建一个页面组件实例,并在全局的Vue实例上注册。
S102、当接收到数据更新指令时,利用数据更新指令对缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对更新后的画布实例进行视图刷新。
在本发明实施例中,若接收到数据更新指令,则首先可利用数据更新指令对缓存模块中的画布实例进行数据更新。而在更新之后,若确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,为避免强行进行视图刷新容易导致的渲染错误问题,本发明实施例可不基于更新后的画布实例执行视图更新,并仅在确定更新后的画布实例所在的页面组件实例重新切换至HTML文档树时,才对更新后的画布实例执行视图刷新。这样,本发明实施例能够基于新增的缓存模块对画布实例的更新及视图刷新进行单独控制,从而能够有效避免因Keepalive组件与图编辑引擎间的兼容性问题所导致的页面渲染错误问题。
当然,可以理解的是,若在对缓存模块中的画布实例进行数据更新之后,可确定画布实例所在的页面组件实例已处于HTML文档树中,则可直接对更新后的画布实例进行视图刷新。
需要说明的是,本发明实施例并不限定视图刷新的具体执行过程,可参考图编辑引擎的相关技术。
进一步,由于本发明实施例可对已缓存的页面组件实例的数量进行控制,当确定已缓存的页面组件实例数量大于预设阈值时则可在已缓存页面组件实例中进行淘汰。因此,在对某RPA流程进行数据更新时,可能出现其画布实例并未保存在缓存模块中的情况。因此,在进行数据更新时,可首先判断RPA流程的画布实例是否保存于缓存模块,若是则可对该画布实例进行更新,反之则需要查找RPA子流程对应的流程文件,并在流程文件中执行相应的修改。
基于此,在利用数据更新指令对缓存模块中的画布实例进行数据更新之前,还可以包括:
步骤31:判断当前的待更新RPA子流程的画布实例是否保存于缓存模块;若是,则进入步骤32;若否,则进入步骤33;
步骤32:针对待更新RPA子流程的画布实例进入利用数据更新指令对缓存模块中的画布实例进行数据更新的步骤;
步骤33:根据数据更新指令修改待更新RPA子流程的流程文件并保存。
具体的,在确定用户修改RPA应用数据时,可发送一条数据修改消息。缓存模块监听到此消息后,可遍历所有的RPA子流程,并判断待更新子流程的画布实例是否存在于缓存模块中。若缓存模块中不存在待更新流程的画布实例,则可读取本地的流程文件遍历流程指令数据,找到需要修改属性的指令,修改完后保存文件。若缓存模块中存在待更新流程的画布实例,则可获取此画布实例G,并判断该子流程的页面是否是激活状态,判断该子流程对应的页面组件实例是否位于HTML文档树。若该页面未处于激活状态,则可调用G的getNodes方法得到所有的指令节点,找到需要修改属性的指令节点,调用Node节点对象的setData方法静态修改属性,并将修改过的节点对象保存在实例G上,以便用户下次激活此流程页面时触发这些节点的视图更新,从而达到增量更新的目的。若该流程页面已处于激活状态,则可调用实例G的方法节点修改指令节点的属性,并直接触发DOM视图的刷新。
S103、当接收到流程切换操作时,将RPA子流程对应的页面组件实例切换至HTML文档树,并在确定页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
在接收到流程切换操作,本发明实施例可将RPA子流程对应的页面组件实例切换至HTML文档树。在完成切换时,可进一步判断该页面组件实例中的画布实例是否存在数据更新时,若存在更新则可对该画布实例进行视图刷新,以将更新内容输出至显示界面。可见,由于视图刷新仅发生于页面组件实例切换至HTML文档树之时,因此可避免画布实例无法基于HTML文档树定位所导致的渲染错误问题。
进一步,由于本发明实施例可对已缓存的页面组件实例的数量进行控制,当确定已缓存的页面组件实例数量大于预设阈值时则可在已缓存页面组件实例中进行淘汰。因此,在进行流程切换时,需判断当前的待切换RPA子流程对应的页面组件实例是否已缓存,若已缓存是则可直接进入将RPA子流程对应的页面组件实例切换至HTML文档树的步骤,若未缓存,则需要等待这一待切换RPA子流程对应的页面组件实例已创建并缓存后再开始执行将RPA子流程对应的页面组件实例切换至HTML文档树的步骤。
基于此,在将RPA子流程对应的页面组件实例切换至HTML文档树之前,还可以包括:
步骤41:判断当前的待切换RPA子流程对应的页面组件实例是否已缓存;若是,则进入步骤42;若否,则进入步骤43;
步骤42:进入将RPA子流程对应的页面组件实例切换至HTML文档树的步骤;
步骤43:等待待切换RPA子流程对应的页面组件实例已创建并缓存后进入将RPA子流程对应的页面组件实例切换至HTML文档树的步骤。
进一步,为方便用户使用,在完成页面组件实例的切换之后,还可利用钩子函数将RPA子流程的页面调整至上次显示的位置。可以理解的是,该页面可对包含有页面组件实例的HTML文档树进行渲染得到。
基于此,在将待切换的RPA子流程对应的页面组件实例切换至HTML文档树之后,还可以包括:
步骤51:利用钩子函数将所述RPA子流程的页面调整至上次显示的位置。
具体的,当检测到用户切换子流程时,可将待切换RPA子流程的页面切换至可视化界面,并触发该RPA子流程组件实例中的onActivated(已激活)钩子,在此钩子中,可将画布滚到上次的位置,如果有待更新视图的节点,触发节点视图的更新。
进一步,当用户关闭/删除子流程时,可删除KeepAlive中缓存的流程页面组件实例并删除缓存模块中此流程的画布实例。
基于此,本方法还可以包括:
步骤61:当接收到流程删除操作时,删除待删除RPA子流程对应的页面组件实例和待删除的RPA子流程在缓存模块的画布实例;
进一步,当用户关闭整个RPA应用时,可清空KeepAlive中缓存的组件实例、清空缓存模块的画布实例。
基于此,本方法还可以包括:
步骤71:当接收到应用关闭操作时,删除所有已缓存的页面组件实例及缓存模块中的所有画布实例。
基于上述实施例,本发明除了利用Keepalive组件缓存RPA子流程对应的页面组件实例,还可利用缓存模块单独缓存各页面组件实例中的画布实例。随后,在接收到数据更新指令时,可利用数据更新指令对缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对更新后的画布实例进行视图刷新,以避免出现视图刷新错误。而在接收到流程切换操作时,将RPA子流程对应的页面组件实例切换至HTML文档树,并在确定页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新,即本发明可使用单独的缓存模块对画布实例进行单独缓存,以便对画布实例的更新及视图刷新进行单独控制,从而能够保证画布实例正常刷新。
下面通过具体例子说明上述过程,该例子中组件实例缓存为KeepAlive缓存的组件实例,请参考图2,图2为本发明实施例所提供的一种具体RPA流程的缓存管理方法的流程图,过程具体如下:
步骤1:接收用户的操作指令,并根据操作确定对应的子流程。
步骤2:当操作指令为打开指令时,则顺序执行步骤3、步骤4和步骤5;当操作指令为切换指令时,则执行步骤6;当指令为关闭或删除指令时,则执行步骤7;当操作指令为关闭整个应用的关闭应用指令时,则执行步骤8。
步骤3:根据打开指令打开子流程,确定组件数据库中是否存在该子流程的组件实例,若存在则得到子流程的组件实例,若不存在创建子流程的组件实例,并在全局的Vue实例上注册。
步骤4:判断当前组件实例缓存中组件实例的数量是否超过预设阈值,相当于确定KeepAlive缓存的组件实例的数量是否超过预设阈值。若超过预设阈值,则删除缓存中已销毁的画布实例,若未超过预设阈值,则将与子流程对应的组件实例保存至组件实例缓存中。
步骤5:根据子流程,创建对应的画布实例,并将画布实例保存至缓存中。
步骤6:根据切换指令,确定KeepAlive缓存中是否存在与子流程对应的组件实例,若存在组件实例,则根据切换指令,利用onActivated(已激活)钩子滚动页面至上次离开此流程页面的位置,并更新画布实例中指令节点的节点视图。若不存在组件实例,则执行步骤4和步骤5。
步骤7:根据关闭或删除指令,删除KeepAlive中缓存子流程的组件实例和缓存中子流程的画布实例。
步骤8:根据关闭应用指令,清空KeepAlive中缓存子流程的组件实例和缓存中子流程的画布实例。
本发明实施例中可以根据流程控制指令,对子流程执行对应的缓存控制操作,控制子流程的打开、切换、删除和关闭等,实现动态控制子流程的缓存,更便捷地控制子流程,以及预先构建组件数据库实现动态创建流程页面组件实例并注册,使得所有组件实例共用一个文件便于管理。
下面通过具体例子说明上述数据更新的过程,该例子中已有一个RPA应用A,包含若干个子流程和若干个全局变量,将全局变量(gvar1)的名称修改为gvar2,其中,应用A可以基于Vue前端框架和Antv/x6图编辑引擎得到。请参考图3,图3为本发明实施例所提供的一种具体RPA流程的缓存数据管理方法的流程图,可以包括:
1、用户将全局变量gvar1的名称修改为gvar2,修改完成后发送一条CHANG_GLV_VARS消息相当于数据更新指令,携带此全局变量的旧值和新值数据。
2、监听到该消息后,遍历所有的子流程,确定待更新的子流程。假设当前待更新的流程为flow1,确定缓存中是否存在与flow1对应的画布实例G。
3、若存在画布实例G,则调用G的getNodes方法得到所有指令节点(Node)的对象(list),遍历list并确定待修改的指令节点的属性。可以分别遍历指令节点的输入字段和输出字段的值和gvar1进行比较,若相等,则将此属性字段先保存在一个临时字典中,直至所有的属性字段遍历完成,集合所有待修改的属性字段后,一次性通用节点对象的setData方法修改指令节点的数据。
4、确定子流程是否为激活状态,如果是,则修改完成后直接刷新节点视图,如果不是,则将执行修改操作的指令节点对象保存到画布实例上,等用户再次激活此流程页面时再刷新节点视图。
5、若不存在画布实例,则读取子流程的流程文件得到指令数组,遍历指令数组并调用修改指令输入输出属性的方法,直接修改指令节点的数据,然后将修改后的数据保存到子流程的流程文件中。
6、所有的子流程遍历完后,结束更新操作。
下面对本发明实施例所提供的一种RPA流程的缓存管理装置以及计算机设备进行介绍,下文描述的RPA流程的缓存管理装置以及计算机设备与上文描述的RPA流程的缓存管理方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种RPA流程的缓存管理装置的结构框图,该装置可以包括:
缓存管理模块401,用于利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各页面组件实例中的画布实例;
数据更新模块402,用于当接收到数据更新指令时,利用数据更新指令对缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对更新后的画布实例进行视图刷新;
流程切换模块403,用于当接收到流程切换操作时,将RPA子流程对应的页面组件实例切换至HTML文档树,并在确定页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
可选地,缓存管理模块401,可以包括:
流程启动子模块,用于在接收到流程启动操作时,判断已缓存页面组件实例的数量是否超过预设阈值;
淘汰子模块,用于若超过预设阈值,则在已缓存页面组件实例中确定待淘汰页面组件实例,销毁待淘汰页面组件实例,并在缓存模块中删除已销毁的画布实例;
创建子模块,用于创建当前的待启动RPA子流程对应的页面组件实例,利用Keepalive组件缓存待启动RPA子流程的页面组件实例,并利用缓存模块缓存待启动RPA子流程的画布实例;
相应的,数据更新模块402,还可以包括:
判断子模块,用于判断当前的待更新RPA子流程的画布实例是否保存于缓存模块;
第一更新子模块,用于若是,则针对待更新RPA子流程的画布实例进入利用数据更新指令对缓存模块中的画布实例进行数据更新的步骤;
第二更新子模块,用于若否,则根据数据更新指令修改待更新RPA子流程的流程文件并保存;
相应的,流程切换模块403,还可以包括:
切换子模块,用于判断当前的待切换RPA子流程对应的页面组件实例是否已缓存;若是,则进入将RPA子流程对应的页面组件实例切换至HTML文档树的步骤;若否,则等待待切换RPA子流程对应的页面组件实例已创建并缓存后进入将RPA子流程对应的页面组件实例切换至HTML文档树的步骤。
可选地,创建子模块,可以包括:
注册判断单元,用于根据待启动RPA子流程的流程名称,判断待启动RPA子流程对应的页面组件实例是否注册;若否,则创建待启动RPA子流程对应的页面组件实例,并基于待启动RPA子流程的流程名称全局注册待启动RPA子流程对应的页面组件实例。
可选地,该装置还可以包括:
组件数据库创建模块,用于根据应用中所有的RPA子流程,构建应用的组件数据库。
可选地,流程切换模块403,还可以包括:
页面调整子模块,用于利用钩子函数将RPA子流程的页面调整至上次显示的位置。
可选地,该装置还可以包括:
流程删除模块,用于当接收到流程删除操作时,删除待删除RPA子流程对应的页面组件实例和待删除的RPA子流程在缓存模块的画布实例。
可选地,该装置还可以包括:
应用关闭模块,用于当接收到应用关闭操作时,删除所有已缓存的页面组件实例及缓存模块中的所有画布实例。
请参考图5,图5为本发明实施例所提供的一种计算机设备的结构框图,该设备包括:
存储器10,用于存储计算机程序;
处理器20,用于执行所述计算机程序时,以实现上述的RPA流程的缓存管理方法。
如图5所示,为计算机设备的结构示意图,可以包括:存储器10、处理器20、通信接口31、输入输出接口32以及通信总线33。
在本发明实施例中,存储器10中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器10中可以存储有用于实现以下功能的程序:
利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;
当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;
当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。在一种可能的实现方式中,存储器10可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
此外,存储器10可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括NVRAM。存储器存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可以包括各种系统程序,用于实现各种基础任务以及处理基于硬件的任务。
处理器20可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件,处理器20可以是微处理器或者也可以是任何常规的处理器等。处理器20可以调用存储器10中存储的程序。
通信接口31可以为用于与其他设备或者系统连接的接口。
输入输出接口32可以为用于获取外界输入数据或向外界输出数据的接口。
当然,需要说明的是,图5所示的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图5所示的更多或更少的部件,或者组合某些部件。
由于计算机设备部分的实施例与上述RPA流程的缓存管理方法的实施例类似,因此计算机设备部分的实施例可参考上述实施例,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机可执行指令,计算机可执行指令被处理器加载并执行时,至少实现:利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
由于计算机可读存储介质部分的实施例与上述RPA流程的缓存管理方法的实施例类似,因此计算机可读存储介质部分的实施例可参考上述实施例,此处不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种RPA流程的缓存管理方法、装置、计算机设备和介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种RPA流程的缓存管理方法,其特征在于,包括:
利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;
当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;
当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
2.根据权利要求1所述的RPA流程的缓存管理方法,其特征在于,所述利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例,包括:
在接收到流程启动操作时,判断已缓存页面组件实例的数量是否超过预设阈值;
若超过所述预设阈值,则在所述已缓存页面组件实例中确定待淘汰页面组件实例,销毁所述待淘汰页面组件实例,并在缓存模块中删除已销毁的画布实例;
创建当前的待启动RPA子流程对应的页面组件实例,利用Keepalive组件缓存所述待启动RPA子流程的页面组件实例,并利用缓存模块缓存所述待启动RPA子流程的画布实例;
相应的,在利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新之前,还包括:
判断当前的待更新RPA子流程的画布实例是否保存于所述缓存模块;
若是,则针对所述待更新RPA子流程的画布实例进入所述利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新的步骤;
若否,则根据所述数据更新指令修改所述待更新RPA子流程的流程文件并保存;
相应的,在将所述RPA子流程对应的页面组件实例切换至HTML文档树之前,还包括:
判断当前的待切换RPA子流程对应的页面组件实例是否已缓存;
若是,则进入所述将所述RPA子流程对应的页面组件实例切换至HTML文档树的步骤;
若否,则等待所述待切换RPA子流程对应的页面组件实例已创建并缓存后进入所述将所述RPA子流程对应的页面组件实例切换至HTML文档树的步骤。
3.根据权利要求2所述的RPA流程的缓存管理方法,其特征在于,所述创建当前的待启动RPA子流程对应的页面组件实例,包括:
根据所述待启动RPA子流程的流程名称,判断所述待启动RPA子流程对应的页面组件实例是否注册;
若否,则创建所述待启动RPA子流程对应的页面组件实例,并基于所述待启动RPA子流程的流程名称全局注册所述待启动RPA子流程对应的页面组件实例。
4.根据权利要求2所述的RPA流程的缓存管理方法,其特征在于,在接收流程启动操作之前,还包括:
根据应用中所有的RPA子流程,构建所述应用的组件数据库。
5.根据权利要求1所述的RPA流程的缓存管理方法,其特征在于,在将所述RPA子流程对应的页面组件实例切换至HTML文档树之后,还包括:
利用钩子函数将所述RPA子流程的页面调整至上次显示的位置。
6.根据权利要求1所述的RPA流程的缓存管理方法,其特征在于,还包括:
当接收到流程删除操作时,删除待删除RPA子流程对应的页面组件实例和所述待删除的RPA子流程在所述缓存模块的画布实例。
7.根据权利要求1所述的RPA流程的缓存管理方法,其特征在于,还包括:
当接收到应用关闭操作时,删除所有已缓存的页面组件实例及所述缓存模块中的所有画布实例。
8.一种RPA流程的缓存管理装置,其特征在于,包括:
缓存管理模块,用于利用Keepalive组件缓存RPA子流程对应的页面组件实例,并利用缓存模块缓存各所述页面组件实例中的画布实例;
数据更新模块,用于当接收到数据更新指令时,利用所述数据更新指令对所述缓存模块中的画布实例进行数据更新,并在确定更新后的画布实例所在的页面组件实例未切换至HTML文档树时,不对所述更新后的画布实例进行视图刷新;
流程切换模块,用于当接收到流程切换操作时,将所述RPA子流程对应的页面组件实例切换至HTML文档树,并在确定所述页面组件实例中的画布实例存在数据更新时,对更新后的画布实例进行视图刷新。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的RPA流程的缓存管理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述RPA流程的缓存管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473080.8A CN117520682A (zh) | 2023-11-07 | 2023-11-07 | 一种rpa流程的缓存管理方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311473080.8A CN117520682A (zh) | 2023-11-07 | 2023-11-07 | 一种rpa流程的缓存管理方法、装置、计算机设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117520682A true CN117520682A (zh) | 2024-02-06 |
Family
ID=89750605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311473080.8A Pending CN117520682A (zh) | 2023-11-07 | 2023-11-07 | 一种rpa流程的缓存管理方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520682A (zh) |
-
2023
- 2023-11-07 CN CN202311473080.8A patent/CN117520682A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458727B2 (en) | Asynchronous client to server updates | |
US7251808B2 (en) | Graphical debugger with loadmap display manager and custom record display manager displaying user selected customized records from bound program objects | |
US20210311770A1 (en) | Method for implementing smart contract based on blockchain | |
CN112965901B (zh) | Api的测试方法、服务器、系统以及电子设备 | |
US20210271679A1 (en) | Database management system query plan cache management | |
US7469300B2 (en) | System and method for storage and retrieval of arbitrary content and application data | |
US10013347B2 (en) | Non-blocking parallel memory mechanisms | |
US7117293B1 (en) | Method and apparatus for archiving and unarchiving objects | |
CN109067562A (zh) | 基于智能指针的动态配置更新方法及系统、服务器及介质 | |
JPH06231268A (ja) | Dag構造ネットワークのトラバーサル状態属性値を保管しかつ復元する方法及び装置 | |
CN117520682A (zh) | 一种rpa流程的缓存管理方法、装置、计算机设备和介质 | |
CN113050923A (zh) | 前端接口数据模拟方法、装置及系统 | |
CN112559172A (zh) | 网页浏览器内存优化方法、系统、设备及存储介质 | |
US6816866B2 (en) | Method of changing a parameter of an operating system of a computer system | |
CN109150993B (zh) | 一种获取网络请求切面的方法、终端装置及存储介质 | |
US20230379330A1 (en) | Managing operator pattern service connections to an environment | |
CN115495794B (zh) | 一种基于无文件技术的反解析文件保护方法和装置 | |
JP3145090B2 (ja) | 情報反映装置 | |
CN117170637A (zh) | 一种小程序生命周期拦截方法、装置、计算机设备和介质 | |
US20240036840A1 (en) | Deferred formula computation | |
JPH0668183A (ja) | 設計支援装置 | |
CN116187404A (zh) | 一种残差网络内存优化方法、装置、设备及介质 | |
CN117235826A (zh) | 水电模型文件自动建模方法、计算机设备和可读存储介质 | |
CN113760404A (zh) | 一种页面回退方法、装置、设备及存储介质 | |
CN111767412A (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 |