[发明专利]一种基于activiti自定义表单的高并发工作流审批方法在审
申请号: | 202110683401.1 | 申请日: | 2021-06-21 |
公开(公告)号: | CN113312181A | 公开(公告)日: | 2021-08-27 |
发明(设计)人: | 罗宇豪;徐士强;魏金雷;孙思清 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/28;G06F16/23;G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 阚恭勇 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 activiti 自定义 表单 并发 工作流 审批 方法 | ||
本发明提供一种基于activiti自定义表单的高并发工作流审批方法,属于工作流领域,本发明可以根据公司业务逻辑的不同创建自定义表单和自定义数据库,根据流程节点的注释类型不同,对不同类型的流程节点进行不同的处理。创建流程实例时,使用Redis锁保存流程实例id,实例名称,进行实例名称的查重去重。
技术领域
本发明涉及工作流领域,尤其涉及一种基于activiti自定义表单的高并发工作流审批方法。
背景技术
工作流是每个公司涉及到业务工作时都会使用的,现在的开源框架中,activiti和flowable一直获得国内技术人员的青睐。相对于flowable,activiti的使用人数更多。Activiti5的扩展性强,基本能够完成国内工作流程中遇到的复杂业务逻辑。Flowable的逻辑接口大部分都是全新的,由公司原使用的activiti5直接跳跃到flowable难度比较大,因此选择了相对改动比较小的Activiti7。
Acitiviti为了支持复杂的业务逻辑和不同的数据类型及结构,提供了可以直接访问和修改本地数据库以及执行自定义sql语句的NactivQuery接口,执行自定义的sql语句,并存入自定义数据库中。
Redis是一个内存中的数据接口存储系统,可以用作数据库、缓存和消息中间件。Redis是一种key-value结构的存储系统,支持string(字符串)、list(链表)、set(集合)、zset(sorted set--有序集合)和hash(哈希类型),是一种高性能的数据存储系统。可以替代Java中一些非线程安全的类进行高并发操作。
发明内容
为了解决以上技术问题,本发明提供了一种基于activiti自定义表单的高并发工作流审批方法,解决高并发情况下的流程实例名称查重和审批。
本发明的技术方案是:
一种基于activiti自定义表单的高并发工作流审批方法,根据业务逻辑的不同创建自定义表单和自定义数据库,根据流程节点的注释类型不同,对不同类型的流程节点进行不同的处理;创建流程实例时,使用Redis锁保存流程实例id,实例名称,进行实例名称的查重去重。
进一步的,
包括四个部分:自定义数据、基于Redis的缓存实例名称去重、多线程抢锁机制的流程审批、自定义节点驳回操作。
其中,
自定义数据:
activiti的内嵌页面支持接口化开发和自定义表单开发,将公司的业务数据类型通过表单提交、保存到自定义数据库中。
Activiti的createNactivQuery接口支持基于acitiviti开源框架下运行自定义sql语句,可将公司复杂的业务逻辑处理sql化,通过createNactivQuery(sql)进行数据库的操作。
制定新的数据表作为系统扩展存储信息位置,并且信息表包含查询流程相关内容的信息,包括流程定义关联、流程实例关联、当前节点相关信息、上一节点及下一节点相关信息。
基于Redis的缓存实例名称去重:
Redis作为高新更能key-value数据存储系统,可作为服务器的缓存,在高并发情况下,将创建的用户id和实例名称保存到redis中,将实例名称作为key加时间锁,进行创建实例时从Redis获取实例名称和用户id,进行创建操作;当创建成功后释放锁,或者超出创建时间创建失败后释放Redis锁。
多线程抢锁机制的流程审批:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110683401.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:不倒杯
- 下一篇:一种袜子的香气处理方法