本发明专利技术涉及流程引擎事务处理方法及装置,该方法包括步骤如下:接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。本发明专利技术将数据请求的流程处理分成三个阶段分别执行,延迟开启数据库事务的时间,从而缩短了数据库操作事务的时长,增强了系统的稳定性。
【技术实现步骤摘要】
本专利技术涉及流程引擎事务处理方法及装置。
技术介绍
业务建模是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及它们的属性、行为和彼此关系,其目的是为了更好的展现、分析、规划、涉及企业的业务流程,以及涉及和构架企业请求系统。流程引擎是系统中业务实现的强大逻辑层,不仅本身运行机制逻辑复杂,还有保障业务逻辑和自身逻辑系统工作,数据一致。因此必须寻求一致方式,来保证数据的完整性和一致性。目前流程引擎的事务控制,普遍通行的做法是依赖数据库本身的事务机制。达到事务处理的并发控制、数据回滚等,保证流程引擎数据和业务数据的一致性和完整性。以java通常的处理方式来说明:系统集成数据库厂商发布的JDBC驱动,在需要处理业务数据和操作流程时,用驱动提供的API打开数据库事务支持。业务逻辑和流程逻辑相关操作,提交相关数据到数据库,利用驱动提供的API提交事务,如果发生错误,数据库会回滚相关操作,保证数据还原到操作前的状态。现有的操作方法所带来的缺点在于:依赖数据库的事务支持,系
统稳定性取决于数据库对事务处理的强弱;依赖数据库的事务支持,占用过多数据库资源;业务数据处理和流程引擎本身数据处理都需要在一个事务中,导致事务过程,当并发过大时,容易出现数据库锁表,出现系统级故障,影响系统整体稳定性。
技术实现思路
针对上述技术问题,本专利技术的目的之一在于提供一种流程引擎事务处理方法,其能够使系统稳定性增强,降低数据库操作时长。本专利技术的目的之二在于提供一种流程引擎事务处理装置,其用于实现本专利技术的目的之一。为实现本专利技术的目的之一,采用如下技术方案:流程引擎事务处理方法,包括如下步骤:步骤A:接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;步骤B:根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;步骤C:数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。优选的,步骤A具体包括如下子步骤:步骤a1:接收数据请求,判断该数据请求是否符合预设条件,
若是,执行步骤a2,否则,将该数据请求退回至提出数据请求的发起方;步骤a2:将该数据请求生成相应的唯一编码,并将该数据请求保存至数据库中。优选的,所述动作标示包括新增、修改和删除。为实现本专利技术的目的之二,采用如下技术方案:流程引擎事务处理装置,包括如下单元:接收单元:用于接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;分配单元:用于根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;触发单元:用于数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。优选的,所述接收单元具体包括如下模块:判断模块:用于接收数据请求,判断该数据请求是否符合预设条件,若是,执行生成模块,否则,将该数据请求退回至提出数据请求的发起方;生成模块:用于将该数据请求生成相应的唯一编码,并将该数据请求保存至数据库中。优选的,所述动作标示包括新增、修改和删除。相比现有技术,本专利技术的有益效果在于:本专利技术将数据请求的流程处理分成三个阶段分别执行,延迟开启数据库事务的时间,从而缩短了数据库操作事务的时长,增强了系统的稳定性。附图说明图1为本专利技术的流程引擎事务处理方法的工作流程图。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述:流程引擎作为应用系统的一部分,并为之提供对各应用系统有决定作用的、并根据角色、分工和条件的不同信息传递路由、内容等级等核心解决方案。工作流引擎包括了流程的节点里、流向管理、时限管理等重要功能,是系统中业务实现的强大逻辑层。事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理,其具有以下特性:原子性,一个事务中所以对数据库的操作是一个不可分割的操作序列,要么全做,要么不做;一致性,数据不会因为事务的执行而遭到破坏;隔离性,一个事务的执行,不受其他事务(进程)的干扰,即并发执行的每个事务之间互不干扰;持久性,一个事务一旦提交,它对数据库的改变讲师永久的。在对数据库进行相关操作时,数据库可能会对数据进行相关的锁操作,锁的类型有三种:共享锁,多个事务可封锁一个共享页,任何事务都不能修改该页,
通常是该页被读取完毕,共享锁立即被释放;排它锁,仅允许一个事务封锁此页,其他任何事务必须等到排它锁被释放才能对该页进行访问,排它锁一直到事务结束才能被释放;更新锁,用来预定要对此页施加排它锁,允许其他事务读,但不允许再施加更新锁或排它锁,当被读取的页将被更新时,则升级为排它锁,更新锁一直到事务结束才能被释放。参见图1,本专利技术提供一种流程引擎事务处理方法,通过对长事务的拆分,分为业务处理阶段、流程处理阶段、处理事件触发阶段,事务一分为三,将事务缩短,同时引擎实现自身的数据完成性控制机制,保证三阶段处理的数据完整性,具体包括如下步骤:步骤S1:接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;步骤S1属于业务处理阶段,将本次数据请求进行保存,该保存包括缓存,用于后续阶段失败时该数据请求还原操作使用。在数据库都持久化了每个数据请求的唯一编码,使得数据不会因并发导致还原错误。对于步骤S1,可具体分为如下步骤:步骤a1:接收数据请求,判断该数据请求是否符合预设条件,若是,执行步骤a2,否则,将该数据请求退回至提出数据请求的发起方;发起方提出数据请求,系统接到数据请求之后进行判断是否符合预设条件;步骤a2:将该数据请求生成相应的唯一编码,并将该数据请求保存至数据库中。通过生成唯一编码,让系统可以快速判断并避免同
时操作同一流程。步骤S2:根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;本步骤属于流程处理阶段,将数据边处理,边增量加入流程数据容器,待流程处理全部完成,一次性提交差异数据到数据库,并将差异信息记录用于数据还原使用。动作标示包括新增、修改和删除。例如,发起方发了一个数据请求,例如,发起方申请请假,包括了执行特性,如请假一天,发出一个第一请假流程,则该动作标示为新增,之后该发起方对该请假的执行特性进行修改,更别为请假两天,则该请求数据的动作标示为修改。通过动作标示可标示出流程正在处理中,当缓存判断通过后再判断流程是否正在处理,达到二次判断,加强准确性。在本步骤中才开启数据库事务,因而目前为止数据库事务为将操作事务提交。需要注意的是,即使不开启数据库事务,也可以将数据保存是数据库中。步骤S3:数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。本步骤属于处理事件触发阶段,数据库针对操作事务进行相关的操作处理。一般的处理方式都是数据提交给流程引擎,流程引擎开启数据库本文档来自技高网...
【技术保护点】
流程引擎事务处理方法,其特征在于,包括如下步骤:步骤A:接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;步骤B:根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;步骤C:数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。
【技术特征摘要】
1.流程引擎事务处理方法,其特征在于,包括如下步骤:步骤A:接收数据请求,对符合预设条件的数据请求生成相应的唯一编码,并将该数据请求保存至数据库中;步骤B:根据该数据请求中的执行特性将该数据请求分配至相应的流程节点;对数据请求进行相应的动作标示以生成操作事务,将该操作事务保存至数据库中,并开启数据库事务,将该操作事务提交至数据库;步骤C:数据库触发该操作事务,发送通知至流程节点所对应的用户,以使用户对数据请求进行处理。2.如权利要求1所述的流程引擎事务处理方法,其特征在于:步骤A具体包括如下子步骤:步骤a1:接收数据请求,判断该数据请求是否符合预设条件,若是,执行步骤a2,否则,将该数据请求退回至提出数据请求的发起方;步骤a2:将该数据请求生成相应的唯一编码,并将该数据请求保存至数据库中。3.如权利要求1所述的流程引擎事务处理方法,其特征在于,所述动作标示包括新增、修改和删除。4.流程引擎事务处理...
【专利技术属性】
技术研发人员:杨学刚,杨志成,曹雄,朱江,凌宏喜,樊冠群,
申请(专利权)人:广东凯通软件开发有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。