CN112685499A - 一种工作业务流的流程数据同步方法、装置及设备 - Google Patents
一种工作业务流的流程数据同步方法、装置及设备 Download PDFInfo
- Publication number
- CN112685499A CN112685499A CN202011604434.4A CN202011604434A CN112685499A CN 112685499 A CN112685499 A CN 112685499A CN 202011604434 A CN202011604434 A CN 202011604434A CN 112685499 A CN112685499 A CN 112685499A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- task
- flow
- collection object
- 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
- 238000000034 method Methods 0.000 title claims abstract description 285
- 230000008569 process Effects 0.000 title claims abstract description 245
- 230000001960 triggered effect Effects 0.000 claims abstract description 31
- 230000015654 memory Effects 0.000 claims description 27
- 230000001360 synchronised effect Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 25
- 238000013480 data collection Methods 0.000 claims description 11
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 13
- 230000009471 action Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009969 flowable effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Abstract
本申请提供一种工作业务流的流程数据同步方法、装置及设备,应用于业务流程建模符号(BPMN)工作流框架中,涉及计算机技术领域,用于解决流程数据查询时产生的响应延时高的问题。该方法包括:在流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集任一流程节点的节点数据;根据节点数据中各个数据的类别,分别将节点数据中各个数据存储至关系型数据库中对应类别的数据表中;在任一流程节点终止时,分别从各个类别的数据表中获取任一流程节点的节点数据,并将获取的节点数据发送至消息队列;将从消息队列获取的节点数据同步至非关系型数据库中。
Description
技术领域
本申请涉及计算机技术领域,提供一种工作业务流的流程数据同步方法、装置及设备。
背景技术
随着各个企业的不断发展,企业的各种事务对应的流程审批所产生的流程数据也不断增多,使得进行流程审批的系统的性能不断下降,进而产生启动业务流程卡顿以及流程数据查询速度变慢等问题,导致用户对流程审批系统的体验感越来越差。一般而言,在业务流程建模符号(Business Process Modeling Notation,BPMN)工作流框架中,流程数据会按照其类型分别存储至结构化查询语言(My Structured Query Language,MySQL)数据库的多个数据表中,所以,在进行流程数据查询时,需要多次查表操作且需要对查表获取的数据进行连接,响应延时高。
因此,如何提升流程数据查询的响应速度是一个亟待解决的问题。
发明内容
本申请实施例提供一种工作业务流的流程业务数据同步方法、装置及设备,用于解决流程数据查询时产生的响应延时高的问题。
一方面,提供一种工作业务流的流程数据同步方法,所述方法包括:
在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据;其中,所述任务收集对象用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,每个流程节点的节点数据包括多个类别的数据;
根据所述流程节点的节点数据中各个数据的类别,分别将所述节点数据中各个数据存储至关系型数据库中对应类别的数据表中;
在所述任一流程节点终止时,分别从各个类别的数据表中获取所述任一流程节点的节点数据,并将获取的所述节点数据发送至消息队列;
将从所述消息队列获取的所述节点数据同步至非关系型数据库中。
一方面,提供一种工作业务流的流程数据同步装置,所述装置包括:
数据收集单元,用于在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据;其中,所述任务收集对象用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,每个流程节点的节点数据包括多个类别的数据;
存储单元,用于根据所述节点数据中各个数据的类别,分别将所述节点数据中各个数据存储至关系型数据库中对应类别的数据表中;
数据聚合单元,用于在所述任一流程节点终止时,分别从各个类别的数据表中获取所述任一流程节点的节点数据,并将获取的所述节点数据发送至消息队列;
同步单元,用于将从所述消息队列获取的所述节点数据同步至非关系型数据库中。
可选的,所述数据收集单元还用于:
在流程任务的起始流程节点触发时,从已创建的任务收集对象中为所述流程任务分配对应的任务收集对象;或者,
在流程任务的起始流程节点触发时,为所述流程任务创建对应的任务收集对象。
可选的,所述数据聚合单元,还用于:
通过后置拦截器根据拦截配置信息拦截表征所述任一流程节点终止的处理请求,所述拦截配置信息用于指示所述任一流程节点终止对应的处理请求;
在所述后置拦截器拦截到所述处理请求时,分别从各个类别的数据表中获取所述任一流程节点的节点数据;
将获取的所述任一流程节点的节点数据按照设定的数据结构进行组装,得到同步数据包;
将所述同步数据包发送至所述消息队列。
可选的,所述装置还包括清空单元,用于:
在将获取的所述任一流程节点的节点数据发送至消息队列之后,清空所述任务收集对象缓存的所述任一流程节点的所有节点数据。
可选的,
所述数据收集单元,还用于调用监听器监听所述流程任务的流程节点;
则在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据,包括:
在所述监听器监听到所述流程任务的任一流程节点触发时,调用所述任务收集对象收集所述任一流程节点对应的节点数据。
可选的,
所述数据收集单元,还用于在设定的时间间隔到达时,调用全量同步插件根据设定的配置信息,从所述关系型数据库获取各个类别的数据表的所有数据;
所述同步单元,还用于针对每一流程任务,分别将所述每一流程任务的各个流程节点对应的节点数据按照设定的数据结构进行组装,得到各个流程节点对应的同步数据包;
将所述每一流程任务的各个流程节点对应的同步数据包同步至所述非关系型数据库中。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方面所述的方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方面所述的方法的步骤。
本申请实施例中,当流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集任一流程节点的节点数据,并按照数据的类别,分别将任一流程节点的各个数据存储至关系型数据库中对应类别的数据表中,在任一流程节点终止时,分别从各个类别的数据表中获取该任一流程节点的节点数据,并将获取的任一流程节点的节点数据发送至消息队列,进而将从消息队列获取的任一流程节点的节点数据同步至非关系型数据库中。因此,在本申请实施例中,在业务流程建模符号工作流框架中,通过主动将存储至关系型数据库不同数据表中的流程数据同步至非关系型数据库中进行存储,使得在进行流程数据查询时,仅需要进行一次查表操作且无需进行数据拼接,减少了数据响应时的操作难度,进而提升流程数据查询的响应速度,提升用户使用体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的流程数据同步方法的流程示意图;
图3为本申请实施例提供的流程数据同步装置的一种结构示意图;
图4为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先,对本申请中的部分用语进行解释说明。
(1)关系型数据库:指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库,可以通过查表的方式来检索数据库中的数据。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。由于数据涉及到多张数据表,数据表之间存在着复杂的关系,使得随着数据表数量的增加,数据管理会越来越复杂。
关系型数据库中常见的数据库包括Oracle、SQLServer、DB2以及MySQL等数据库。其中,MySQL数据库是一种开放源代码的基于管理系统(Relational Database ManagementSystem,RDBMS)的数据库,其使用最常用的数据库管理语言SQL进行数据库管理。
(2)非关系型数据库(Not Only SQL,NoSQL):区别于关系型数据库,其不将数据存储至数据表的行和列中,而是大块组合在一起,通常存储至数据集中,如文档、键值对或者图结构等。其不保证关系数据的ACID特性,即不保证关系数据的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability),进而去掉了关系数据库的关系型特性,数据之间无关系,这样就非常容易扩展,也在架构的层面上带来了可扩展的能力。由于不需要经过SQL层的解析,性能非常高,并且数据之间没有耦合性,因而非常容易水平扩展。
因NoSQL数据库具有无关系性,且数据库的结构简单,使得NoSQL数据库具有非常高的读写性能,尤其在大数据量下,读写性能表现俱佳。
例如,NoSQL数据库可以为弹性搜索(ElasticSearch)数据库,ElasticSearch是能够进行全文搜索的功能非常强大的非关系型数据库,具有快速查询用户所需数据的功能。Elasticsearch具体含有2种查询功能,分别为利用Elasticsearch内置查询条件进行的基本查询,以及把多个基本查询组合在一起的组合查询。
(3)业务流程建模符号BPMN工作流框架:定义了一个业务流程图,该流程图被设计用于创建业务流程操作的图形化模型,提供一些被所有业务用户容易理解的符号,从创建流程轮廓的业务分析到这些流程的实现,直到最终用户的管理监控。
例如,最具有代表性的Activiti工作流框架以及Flowable工作流框架。Activiti是一个开源架构的工作流引擎,基于bpmn2.0标准进行流程定义。其前身是Java业务流程管理(Java Business Process Management,JBPM),Activiti通过嵌入到业务系统开发中进行使用。Flowable工作流框架是由activiti主创团队于2017年推出的Java工作流开源框架,用于管理基于BPMN规范的流程。Flowable流程引擎可用于部署BPMN 2.0流程定义,创建这些流程定义的流程实例,进行查询、访问运行中或历史的流程实例与相关的数据等等。
(4)消息队列:是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递,如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。
例如,RabbitMQ消息队列,它是一套开源的消息队列服务软件,是由LShift提供的一个高级消息队列协议(Advanced Message Queuing Protocol,AMQP)的开源实现,由以高性能、稳健以及可伸缩性出名的Erlang语言写成。最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性以及高可用性等方面表现不俗。
一般而言,流程数据会按照其类型分别存储至结构化查询语言(My StructuredQuery Language,MySQL)数据库的多个数据表中,所以,在进行流程数据查询时,需要多次查表操作且需要对查表获取的数据进行连接,响应延时高。
目前,在基于BPMN工作流框架的流程审批系统中,由于在进行数据查询时,需要多个数据表连接在一起才能进行查询,且数据表中的流程数据表与任务数据表是所有流程审批所公用的数据表,因此,当数据表中的数据越来越多时,因多个数据表需要进行连接,会导致即使通过数据库索引进行数据查询,响应延时也比较高。
基于此,本申请实施例中,在业务流程建模符号工作流框架中,当流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集任一流程节点的节点数据,并按照数据的类别,分别将任一流程节点的各个数据存储至关系型数据库中对应类别的数据表中,在任一流程节点终止时,分别从各个类别的数据表中获取该任一流程节点的节点数据,并将获取的任一流程节点的节点数据发送至消息队列,进而将从消息队列获取的任一流程节点的节点数据同步至非关系型数据库中。因此,在本申请实施例中,在业务流程建模符号工作流框架中,通过主动将存储至关系型数据库不同数据表中的流程数据同步至非关系型数据库中进行存储,使得在进行流程数据查询时,仅需要进行一次查表操作且无需进行数据拼接,减少了数据响应时的操作难度,进而提升流程数据查询的响应速度,提升用户使用体验。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图1所示,为本申请实施例提供的一种应用场景示意图,其中,该流程数据同步的应用场景可以包括终端设备101、服务器102以及数据库103。
其中,终端设备101可以为能够进行流程操作的设备,例如手机、个人计算机(personal computer,PC)或者平板电脑(PAD)等。
服务器102内置关系型数据库,例如MySQL数据库,其可以为多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的服务器,但并不局限于此。
数据库103为非关系型数据库,例如NoSQL数据库。
在本申请实施例中,当用户在终端设备101进行流程任务中的某一节点任务执行时,终端设备101会响应用户的节点任务操作,向服务器102发送执行节点任务请求,服务器102响应该节点任务请求,进而执行节点任务,并将执行过程中产生的数据存储至内置的关系型数据库中,且在节点任务执行完毕之后,服务器102会将关系型数据库存储的该节点任务的节点数据同步至数据库103。
当然,本申请实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本申请实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。下面,将结合附图对本申请实施例的方法进行介绍。
如图2所示,为本申请实施例提供的资源同步方法的流程示意图,该方法的流程介绍如下,该方法可以通过图1所示的服务器102来执行。
步骤201:监听流程任务的流程节点是否触发。
在本申请实施例中,流程任务包括多个流程节点,例如在日常工作中的请假流程或者报销流程等涉及审批过程,则相应存在多个流程节点,例如,在请假流程中,可以包括请假申请节点、主管审批节点、部长审批节点以及人事审批节点等,上述的流程节点可以为多个流程节点中的任一流程节点,由于各个流程节点的处理过程类似,因而下面具体以一个流程节点为例进行介绍。
每一流程节点对应多个动作,每一动作的触发都可以理解为该流程节点的触发,例如在进行该流程节点的终止时,则流程任务流转至下一流程节点,那么会为该流程节点创建任务,然后用户对该流程节点进行审批后,则服务器端会响应用户的处理请求,执行该流程节点相应的处理逻辑,执行完毕后则该流程节点的任务完成,或者用户可以删除该节点任务(将流程删除或者任务驳回),其中,创建任务、任务完成或者删除节点均为该流程节点的动作。每一流程节点都对应着多个类别的数据,例如可以包括流程数据、任务数据以及业务数据等,节点数据的存储便于追溯流程任务的过程。
具体的,可以通过监听器监听流程任务的流程节点,在监听器监听到流程任务的任一流程节点触发时,则可以调用该流程节点对应的任务收集对象收集该流程节点对应的节点数据。
流程流转到每一个节点会产生一条任务记录,每个流程节点可以对应多个节点动作,如可以包括任务创建、任务完成以及任务删除,针对每一流程节点,可以分别设置相应的监听器组件,继而可以分别对该流程节点中的任务创建、任务完成以及任务删除等动作进行监听。
每一流程节点的触发可以通过该流程节点中的任一动作来触发,例如当流程节点的任务创建可以触发一次该流程节点,以及任务完成也可以触发一次该流程节点,因此,监听器组件会对流程节点中的每一动作进行监听,例如监听到流程节点的创建任务动作,则调用任务收集对象去收集该流程节点对应的节点数据,如流程编号、任务节点名称、任务开始时间、任务到期时间以及任务处理人等数据,或者,监听到流程节点的任务完成动作,则调用任务收集对象去收集该流程节点对应的节点数据,如任务结束时间等数据。
步骤202:在流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集该任一流程节点的节点数据。
具体的,当用户通过用户终端对某一流程任务的流程节点进行处理时,服务器会相应可以接收到用户针对流程节点发起的处理请求,那么服务器在响应处理请求执行流程节点的处理逻辑时则会产生节点数据,为了对该流程节点的节点数据进行收集,可以为该流程节点配置相应的任务收集对象。
其中,在进行流程任务审批的流程审批系统中,可能存在不止一个流程任务,因此,同一时间段内可能不止一个流程节点任务需要审批,如用户A与用户B的请假申请对应的请假流程A与请假流程B,在某一时间段内,请假流程A的第2个流程节点与请假流程B的第3个流程节点都需要进行审批,任务收集对象可以用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,也就是说,一个任务收集对象可以服务于一个流程任务,也可以服务与多个流程任务。
因而,在流程任务的起始流程节点触发时,当存在可用的任务收集对象时,可以从已创建的任务收集对象中为该流程任务分配对应的任务收集对象。如用户B进行请假申请时,可以直接将用户A进行请假申请时使用的任务收集对象A分配至用户B的请假流程B中,以使得用户B可以使用该任务收集对象A进行数据收集。或者,在流程任务的起始流程节点触发时,也可以为流程任务创建对应的任务收集对象。如用户B进行请假申请时,可以直接为用户B的请假流程B创建一个任务收集对象B来进行数据收集。
或者,在流程任务的起始流程节点触发时,当存在可用的任务收集对象时,可以从已创建的任务收集对象中为该流程任务分配对应的任务收集对象。如用户B的请假流程B的第3个流程节点需要进行审批时,可以直接将用户A进行请假流程A的第2个流程节点审批时使用的任务收集对象A2分配至用户B的请假流程B的第3个流程节点中,以使得用户B的请假流程B的第3个流程节点可以使用该任务收集对象A2进行数据收集。或者,在流程任务的任一流程节点触发时,也可以为该任一流程节点创建对应的任务收集对象。如用户B的请假流程B的第3个流程节点进行审批时,可以直接为用户B的请假流程B的第3个流程节点创建一个任务收集对象B3来进行数据收集。
步骤203:根据节点数据中各个数据的类别,分别将节点数据中各个数据存储至关系型数据库中对应类别的数据表中。
一般而言,按照数据类型可将执行流程任务时所产生的数据分为流程数据、任务数据以及业务数据三大类,因此,在通过任务收集对象对流程节点产生的数据收集之后,可以将该三大类数据分别存储至关系型数据库中对应类别的数据表中,如将流程数据、任务数据以及业务数据分别存储至MySQL数据库的流程数据表、任务数据表以及业务数据表中。其中,流程数据例如可以包括流程编号、流程名称、流程启动时间、流程结束时间以及流程启动人等数据,任务数据例如可以包括流程编号、任务节点名称、任务开始时间、任务结束时间、任务到期时间、任务处理人等数据,任务数据例如可以包括流程编号、请假申请人以及请假天数等数据。
步骤204:确定流程节点的是否终止。
例如在请假流程中,当主管审批节点对应的审核人的审核结束时,该请假流程的主管审批节点的流程节点终止。
若确定流程任务未终止,则跳转至步骤201继续进行监听。
步骤205:在步骤204的确定结果为是时,分别从各个类别的数据表中获取该流程节点的节点数据,并将获取的该流程节点的节点数据发送至消息队列。
在本申请实施例中,当该流程节点的节点任务完成动作被触发时,则该流程节点的节点任务已终止,相应的,该流程节点的节点数据收集已经完成,则可以将该流程节点的节点数据同步至非关系型数据库中。
具体的,可以从各个类别的数据表中获取该流程节点的节点数据,并将获取的该流程节点的节点数据发送至消息队列,该消息队列用于缓存等待同步的各个流程节点的节点数据,如可以采用RabbitMQ消息队列来缓存等待同步的各个流程节点的节点数据。
在具体应用时,可以通过后置拦截器确定流程节点的节点任务完成动作是否触发。具体的,可以预先为后置拦截器配置拦截配置信息,该拦截配置信息用于指示流程节点终止对应的处理请求,则在流程任务流转至该流程节点时,当用户对该流程节点进行了处理操作,则会向服务器发送对于请求对该流程节点进行任务处理的处理请求,服务器端的后置拦截器基于拦截配置信息,可以监测到该处理请求,进而知晓该流程节点的节点任务已完成,即确定流程节点的节点任务完成动作已触发,则可以分别从各个类别的数据表中获取该流程节点的节点数据,再将该流程节点的节点数据同步至非关系型数据库。
例如,可以通过SpringMvc后置拦截器进行请求拦截。
在从各个类别的数据表中获取该流程节点的各个类别的节点数据之后,则可以将获取的该流程节点的节点数据按照设定的数据结构进行组装,得到同步数据包,并将同步数据包发送至消息队列。其中,该数据结构可以为非关系型数据库所能支持的数据结构。
在本申请实施例中,在将获取的该流程节点的节点数据发送至消息队列之后,则可以清空任务收集对象缓存的该流程节点的节点数据,以释放任务收集对象的存储空间,这样,该任务收集对象则可以用于其他流程任务或者流程节点的节点数据收集,以提升资源利用率。
步骤206:将从消息队列获取的该流程节点的节点数据同步至非关系型数据库中。
具体的,从消息队列获得含有流程任务的所有节点数据的同步数据包之后,会将该数据包中的数据同步至非关系型NoSQL数据库中,如具体可以将数据同步至ElasticSearch数据库,在该ElasticSearch数据库中,流程任务的所有节点数据可以集中存储。在进行相关数据查询时,可以直接通过流程任务相关的关键字进行检索,ElasticSearch数据库可以基于关键字定位该流程任务的数据,而不需要像关系型MySQL数据库,必须多次查表操作才能查询到数据,并且需要进行数据拼接。
由于在进行数据同步过程中,任何一个步骤都有可能出错,进而可能会导致同步的数据有误或缺少数据。因此,在本申请实施例中,可以定时对关系型数据库的全量数据进行同步,以解决同步数据有误或缺少数据的问题。
具体的,可以预先设定全量同步的间隔时间以及配置信息,间隔时间可以根据经验值或者系统性能进行设定,配置信息是指配置同步的源数据库信息和目标数据信息,以从源数据库同步至目标数据库。
在监测到设定的时间间隔到达时,可以调用全量同步插件根据设定的配置信息,从关系型数据库获取各个类别的数据表的所有数据,并分别将所有数据包括的各个流程任务各自对应的节点数据按照设定的数据结构进行组装,得到各个流程任务各自对应的同步数据包,进而将各个流程任务各自对应的同步数据包同步至非关系型数据库中。
或者,在从关系型数据库获取各个类别的数据表的所有数据后,针对每一流程任务而言,可以分别将该流程任务的各个流程节点的节点数据按照设定的数据结构进行组装,得到各个流程节点各自对应的同步数据包,进而将各个流程节点各自对应的同步数据包同步至非关系型数据库中。
示例性的,可以在终端设备上安装Logstash同步插件,通过该Logstash同步插件可以将关系型MySQL数据库中的数据同步至非关系型ElasticSearch数据库中。
具体的,在本申请实施例中,可以预先编写用于聚合流程数据表、任务数据表、业务数据表的SQL语句,进而调用该SQL语句进行数据表的聚合。例如,select*from processp left join task t on p.processId=t.processId,其中流程数据表process p是左表,任务数据表task t是右表,在p.processId=t.processId时,使用左连接left join···no将process p与task t进行左连接,使process p与task t聚合为一个部分。
然后,在安装的Logstash同步插件中创建mysql-es.con配置文件,在该配置文件配置关系型MySQL数据库以及非关系型ElasticSearch数据库的信息,如将MySQL数据库的数据库地址、执行SQL语句文件的位置等配置为输入信息,将ElasticSearch数据库的IP端口以及数据库中的ID等配置为输出信息。并设置执行任务的时间间隔,如每1分钟或者每5分钟执行一次,使Logstash同步插件以及前述的聚合SQL语句去获取MySQL数据库中的全部数据,并将该数据同步更新至ElasticSearch数据库中。
由于在非关系型NoSQL数据库中的流程节点的节点数据以任务Id为主键,所以进行一次全量同步会将每一个task Id最新的节点数据覆盖到原本的节点数据上,进而不会对原来的同步过程产生影响。
综上所述,在本申请实施例中,通过主动将存储至关系型数据库不同数据表中的流程节点的节点数据同步至非关系型数据库中进行存储,使得在进行流程数据查询时,仅需要进行一次查表操作且无需进行数据拼接,减少了数据响应时的操作难度,进而提升了流程数据查询的响应速度,且提升了用户使用体验。
请参见图3,基于同一发明构思,本申请实施例还提供了一种工作业务流的流程数据同步装置,该装置30包括:
数据收集单元301,用于在流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集任一流程节点的节点数据;其中,任务收集对象用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,每个流程节点的节点数据包括多个类别的数据;
存储单元302,用于根据节点数据中各个数据的类别,分别将节点数据中各个数据存储至关系型数据库中对应类别的数据表中;
数据聚合单元303,用于在任一流程节点终止时,分别从各个类别的数据表中获取任一流程节点的节点数据,并将获取的节点数据发送至消息队列;
同步单元304,用于将从消息队列获取的节点数据同步至非关系型数据库中。
可选的,装置还包括:
分配单元305,用于在流程任务的起始流程节点触发时,从已创建的任务收集对象中为流程任务分配对应的任务收集对象;或者,
创建单元306,用于在流程任务的起始流程节点触发时,为流程任务创建对应的任务收集对象。
可选的,数据聚合单元303,还用于:
通过后置拦截器根据拦截配置信息拦截表征任一流程节点终止的处理请求,拦截配置信息用于指示任一流程节点终止对应的处理请求;
在后置拦截器拦截到处理请求时,分别从各个类别的数据表中获取任一流程节点的节点数据;
将获取的任一流程节点的节点数据按照设定的数据结构进行组装,得到同步数据包;
将同步数据包发送至消息队列。
可选的,该装置还包括清空单元307,用于:
在将获取的任一流程节点的节点数据发送至消息队列之后,清空任务收集对象缓存的任一流程节点的所有节点数据。
可选的,
数据收集单元301,还用于调用监听器监听流程任务的流程节点;
则在流程任务的任一流程节点触发时,调用流程任务对应的任务收集对象收集任一流程节点的节点数据,包括:
在监听器监听到流程任务的任一流程节点触发时,调用任务收集对象收集任一流程节点对应的节点数据。
可选的,
数据收集单元301,还用于在设定的时间间隔到达时,调用全量同步插件根据设定的配置信息,从关系型数据库获取各个类别的数据表的所有数据;
同步单元304,还用于针对每一流程任务,分别将每一流程任务的各个流程节点对应的节点数据按照设定的数据结构进行组装,得到各个流程节点对应的同步数据包;
将每一流程任务的各个流程节点对应的同步数据包同步至非关系型数据库中。
该装置可以用于执行图2所示的实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。其中,分配单元305、创建单元306以及清空单元307为可选的功能模块,因此在图3中以虚线进行示出。
请参见图4,基于同一技术构思,本申请实施例还提供了一种计算机设备40,包括存储器401和处理器402。
所述存储器401,用于存储处理器402执行的计算机程序。存储器401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器402,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器401和处理器402之间的具体连接介质。本申请实施例在图4中以存储器401和处理器402之间通过总线403连接,总线403在图4中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器401也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器401可以是上述存储器的组合。
处理器402,用于调用所述存储器401中存储的计算机程序时执行如图2所示的实施例中设备所执行的方法。
在一些可能的实施方式中,本申请提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图2所示的实施例中设备所执行的方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种工作业务流的流程数据同步方法,其特征在于,所述方法包括:
在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据;其中,所述任务收集对象用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,每个流程节点的节点数据包括多个类别的数据;
根据所述节点数据中各个数据的类别,分别将所述节点数据中各个数据存储至关系型数据库中对应类别的数据表中;
在所述任一流程节点终止时,分别从各个类别的数据表中获取所述任一流程节点的节点数据,并将获取的所述节点数据发送至消息队列;
将从所述消息队列获取的所述节点数据同步至非关系型数据库中。
2.如权利要求1所述的方法,其特征在于,在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据之前,所述方法还包括:
在流程任务的起始流程节点触发时,从已创建的任务收集对象中为所述流程任务分配对应的任务收集对象;或者,
在流程任务的起始流程节点触发时,为所述流程任务创建对应的任务收集对象。
3.如权利要求1所述的方法,其特征在于,在所述任一流程节点终止时,分别从各个类别的数据表中获取所述任一流程节点的节点数据,并将获取的所述节点数据发送至消息队列,包括:
通过后置拦截器根据拦截配置信息拦截表征所述任一流程节点终止的处理请求,所述拦截配置信息用于指示所述任一流程节点终止对应的处理请求;
在所述后置拦截器拦截到所述处理请求时,分别从各个类别的数据表中获取所述任一流程节点的节点数据;
将获取的所述任一流程节点的节点数据按照设定的数据结构进行组装,得到同步数据包;
将所述同步数据包发送至所述消息队列。
4.如权利要求1所述的方法,其特征在于,在将获取的所述任一流程节点的节点数据发送至消息队列之后,所述方法还包括:
清空所述任务收集对象缓存的所述任一流程节点的节点数据。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
调用监听器监听所述流程任务的流程节点;
则在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据,包括:
在所述监听器监听到所述流程任务的任一流程节点触发时,调用所述任务收集对象收集所述任一流程节点对应的节点数据。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
在设定的时间间隔到达时,调用全量同步插件根据设定的配置信息,从所述关系型数据库获取各个类别的数据表的所有数据;
针对每一流程任务,分别将所述每一流程任务各个流程节点对应的节点数据按照设定的数据结构进行组装,得到各个流程节点对应的同步数据包;
将所述每一流程任务的各个流程节点对应的同步数据包同步至所述非关系型数据库中。
7.一种工作业务流的流程数据同步装置,其特征在于,所述装置包括:
数据收集单元,用于在流程任务的任一流程节点触发时,调用所述流程任务对应的任务收集对象收集所述任一流程节点的节点数据;其中,所述任务收集对象用于收集至少一个流程任务执行过程中各个流程节点产生的节点数据,每个流程节点的节点数据包括多个类别的数据;
存储单元,用于根据所述节点数据中各个数据的类别,分别将所述节点数据中各个数据存储至关系型数据库中对应类别的数据表中;
数据聚合单元,用于在所述任一流程节点终止时,分别从各个类别的数据表中获取所述任一流程节点的节点数据,并将获取的所述节点数据发送至消息队列;
同步单元,用于将从所述消息队列获取的所述节点数据同步至非关系型数据库中。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
所述数据收集单元,还用于通过后置拦截器根据拦截配置信息拦截表征所述任一流程节点终止的处理请求,所述拦截配置信息用于指示所述任一流程节点终止对应的处理请求;在所述后置拦截器拦截到所述处理请求时,分别从各个类别的数据表中获取所述任一流程节点的节点数据;
所述数据聚合单元,还用于将获取的所述任一流程节点的节点数据按照设定的数据结构进行组装,得到同步数据包;将所述同步数据包发送至所述消息队列。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1-6中任一所述的方法包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011604434.4A CN112685499A (zh) | 2020-12-30 | 2020-12-30 | 一种工作业务流的流程数据同步方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011604434.4A CN112685499A (zh) | 2020-12-30 | 2020-12-30 | 一种工作业务流的流程数据同步方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112685499A true CN112685499A (zh) | 2021-04-20 |
Family
ID=75454683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011604434.4A Pending CN112685499A (zh) | 2020-12-30 | 2020-12-30 | 一种工作业务流的流程数据同步方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685499A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342865A (zh) * | 2021-06-11 | 2021-09-03 | 杭州每刻科技有限公司 | 一种报销单审批查询方法和系统 |
CN113407629A (zh) * | 2021-06-18 | 2021-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据同步的方法、装置、电子设备及存储介质 |
CN114756302A (zh) * | 2022-04-25 | 2022-07-15 | 中国建设银行股份有限公司 | 一种信息处理方法、装置、设备和介质 |
WO2023040690A1 (zh) * | 2021-09-17 | 2023-03-23 | 易保网络技术(上海)有限公司 | 一种数据处理方法、程序产品、可读介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104850665A (zh) * | 2015-06-12 | 2015-08-19 | 江苏中威科技软件系统有限公司 | 通过流程嵌套实现流程流转的方法及系统 |
US20160306867A1 (en) * | 2015-04-16 | 2016-10-20 | Alibaba Group Holding Limited | System, method, and apparatus for synchronization among heterogeneous data sources |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
CN111400289A (zh) * | 2020-02-23 | 2020-07-10 | 中国平安财产保险股份有限公司 | 智能用户分类方法、服务器及存储介质 |
CN111460031A (zh) * | 2020-03-23 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 一种数据同步的方法、装置、设备和介质 |
CN112015815A (zh) * | 2020-08-27 | 2020-12-01 | 中国平安财产保险股份有限公司 | 数据同步方法、装置及计算机可读存储介质 |
CN112069266A (zh) * | 2020-09-16 | 2020-12-11 | 青岛海信智慧家居系统股份有限公司 | 一种数据同步方法及服务节点 |
-
2020
- 2020-12-30 CN CN202011604434.4A patent/CN112685499A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160306867A1 (en) * | 2015-04-16 | 2016-10-20 | Alibaba Group Holding Limited | System, method, and apparatus for synchronization among heterogeneous data sources |
CN104850665A (zh) * | 2015-06-12 | 2015-08-19 | 江苏中威科技软件系统有限公司 | 通过流程嵌套实现流程流转的方法及系统 |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
CN111400289A (zh) * | 2020-02-23 | 2020-07-10 | 中国平安财产保险股份有限公司 | 智能用户分类方法、服务器及存储介质 |
CN111460031A (zh) * | 2020-03-23 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 一种数据同步的方法、装置、设备和介质 |
CN112015815A (zh) * | 2020-08-27 | 2020-12-01 | 中国平安财产保险股份有限公司 | 数据同步方法、装置及计算机可读存储介质 |
CN112069266A (zh) * | 2020-09-16 | 2020-12-11 | 青岛海信智慧家居系统股份有限公司 | 一种数据同步方法及服务节点 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342865A (zh) * | 2021-06-11 | 2021-09-03 | 杭州每刻科技有限公司 | 一种报销单审批查询方法和系统 |
CN113407629A (zh) * | 2021-06-18 | 2021-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据同步的方法、装置、电子设备及存储介质 |
WO2023040690A1 (zh) * | 2021-09-17 | 2023-03-23 | 易保网络技术(上海)有限公司 | 一种数据处理方法、程序产品、可读介质和电子设备 |
CN114756302A (zh) * | 2022-04-25 | 2022-07-15 | 中国建设银行股份有限公司 | 一种信息处理方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253347A1 (zh) | 一种容器集群管理方法、装置及系统 | |
CN112685499A (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
US9330161B2 (en) | Creating global aggregated namespaces for storage management | |
US10936423B2 (en) | Enhanced application write performance | |
Abourezq et al. | Database-as-a-service for big data: An overview | |
CN104657497A (zh) | 一种基于分布式计算的海量用电信息并行计算系统及方法 | |
US10303678B2 (en) | Application resiliency management using a database driver | |
US11106651B2 (en) | Table discovery in distributed and dynamic computing systems | |
US10616042B2 (en) | Collaborative triggers in distributed and dynamic computing systems | |
AU2021210357A1 (en) | Method and apparatus for managing and controlling resource, device and storage medium | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
US11704327B2 (en) | Querying distributed databases | |
WO2018188607A1 (zh) | 流处理方法及装置 | |
CN109614271A (zh) | 多个集群数据一致性的控制方法、装置、设备及存储介质 | |
US20230244687A1 (en) | Optimization of Virtual Warehouse Computing Resource Allocation | |
US11727022B2 (en) | Generating a global delta in distributed databases | |
CN112199426B (zh) | 微服务架构下的接口调用管理方法、装置、服务器及介质 | |
US10706073B1 (en) | Partitioned batch processing for a usage analysis system | |
US10348596B1 (en) | Data integrity monitoring for a usage analysis system | |
CN110764882A (zh) | 分布式管理方法、分布式管理系统及装置 | |
US20230062616A1 (en) | Database log performance | |
US20230244538A1 (en) | Optimization of Virtual Warehouse Computing Resource Allocation | |
US11483381B1 (en) | Distributing cloud migration | |
CN113760836A (zh) | 一种宽表计算方法和装置 | |
CN117950850A (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 |