一种可进行数据批量处理的工作流引擎制造技术

技术编号:24853320 阅读:23 留言:0更新日期:2020-07-10 19:07
本发明专利技术提出了一种可进行数据批量处理的工作流引擎,所述工作流引擎包括:流程图构建模块,用于构建工作流引擎的前端架构模型;任务流程执行模块,用于执行工作流的前置任务和后置任务。所述工作流引擎用于解决主流工作流引擎不够快的问题,具有减少数据验证、任务的执行和控制过程中的耗时的特点。

【技术实现步骤摘要】
一种可进行数据批量处理的工作流引擎
本专利技术涉及自动化控制
,特别涉及一种可进行数据批量处理的工作流引擎。
技术介绍
工作流最早起源于生产组织和办公自动化领域,它是针对平时工作中的业务流程活动而提出的一个概念,目的是根据将工作分解成定义良好的任务或角色,根据一定的原则和过程来实施这些任务并加以监控,从而达到提高效率、控制过程、提升客户服务、增强有效管理业务流程等目的。国际上主流工作流引擎有IBMBPM、OracleBPM、JbossBPMN和Activiti等,这些主流工作流引擎都是遵循BPMN2.0规范的,BPMN2.0将业务流程的可视化和底层的XML表示进行了标准化,利用标准的图元去描述真实的业务发生过程,保证相同的流程在不同的流程引擎得到的执行结果一致。现在的主流工作流引擎对于多任务的操作方式上没有采用批量进行操作的方式,本质上还是一条一条的去执行任务,所以在数据量较大时,等待时间非常长,当数据量达到上千条时,等待时间是几何级增长的。
技术实现思路
本专利技术提供了一种可进行数据批量处理的工作流引擎,用以解决现有的主流工作流引擎处理速度不够快的问题,所采取的技术方案如下:一种可进行数据批量处理的工作流引擎,所述工作流引擎包括:流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。进一步地,所述流程图构建模块包括:判断子模块,用于判断是否存在任务流程版本更新需求,如果存在,则向版本更新模块发送更新请求,如果不存在,则向流程流程图绘制模块发送流程图绘制请求;版本更新子模块,用于在判断模块判断存在任务版本更新需求后,进行流程的版本更新;流程图绘制子模块,用于在判断模块判断出不存在流程版本更新需求后,或者版本更新模块更新完流程版本后,绘制流程图;流程发布子模块,用于发布流程图绘制模块绘制好的流程图,并将绘制好的流程图发送至缓存区;反馈信息接收子模块,用于接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。进一步地,所述缓存区设有:流程图更新确定子模块,用于针对缓存区内存放的已完成绘制的流程图,向判断模块发出再次确认是否存在任务流程版本更新需求的指令,由判断模块确定已完成绘制的流程图所对应的同一任务在流程图绘制完成后是否存在任务流程版本更新需求,如果判断模块再次判断后确定已完成绘制的流程图对应的任务流程没有更新需求,则保存该任务对应的流程图;如果判断模块再次判断后确定已完成绘制的流程图对应的任务存在任务流程版本更新的需求,则向标记子模块发出标记指令;标记子模块,用于在接收到流程图更新确定子模块发出的标记指令后,对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记;请求子模块,用于标记子模块对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记后,向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完任务流程版本更新的流程图后将更新后的流程图直接发送至缓存区;删除子模块,用于缓存区收到更新的流程图后删除被标记的流程图。进一步地,所述流程图绘制模块包括:指令收发子模块,用于检测缓存区内部的请求子模块是否向流程图绘制模块提出流程图发送请求,当检测到流程图发送请求后,接收该指令并向流程图发送子模块发出允许将更新后的流程图直接发送至缓存区的指令;流程图发送子模块,用于在收到指令收发子模块发出的允许将更新后的流程图直接发送至缓存区的指令指令后,将绘制完成的存在任务流程版本更新的流程图直接发送至缓存区和流程发布模块;随后,流程发布模块只对更新后的流程图进行发布,不再将更新后的流程图发送至缓存区。进一步地,所述任务流程执行模块包括:流程图获取子模块,用于设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包;前置批量处理子模块,用于以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对流程图任务包和预留任务包中的多个流程图的前置任务进行批量处理;批量执行子模块,用于在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;后置批量处理子模块,用于针对执行完前置任务后的多个流程图的后置任务进行批量处理。进一步地,所述任务流程执行模块还包括:任务存储空间形成子模块,用于在任务流程执行模块中形成一个任务存储空间;任务存储空间删除子模块,用于在所述新流程图被提取后立即删除所述任务存储空间。进一步地,所述流程图获取子模块形成流程图任务包和预留任务包的过程包括:步骤一,设置流程图获取子模块的流程图提取时间间隔,所述流程图提取时间间隔为二倍的流程图生成平均时间,按照所述时间间隔,提取当前时间间隔内流程图构建模块的缓存区中存放的所有流程图步骤二,解析每个流程图的工作节点,识别出工作节点之间的每个工作节点对应的任务内容,各工作节点之间的任务关系以及各任务关系之间的跳转条件;步骤三,针对每个流程图中的各个工作节点,计算所述工作节点与其他任意流程图中各工作节点之间对应的节点关联度,在计算节点关联度的过程中,如果检测到某一流程图中的工作节点已被另一流程图中的工作节点计算获取到了彼此之间的节点关联度,则该工作节点不再对彼此的节点关联度进行计算;步骤四,在所有流程图上的各工作节点均获取到与其他任意流程图上的任意工作节点的节点关联度后,将每个流程图上工作节点的任务关联度相加求和,获得每个流程图各自的关联度总值,所述流程图的关联度总值越高说明该流程图对应的任务流程在全部任务流程中的关键性越高;步骤五,将所有流程图根据关联度总值由高到低的顺序进行排列形成流程图序列,并设置流程图任务包本文档来自技高网...

【技术保护点】
1.一种可进行数据批量处理的工作流引擎,其特征在于,所述工作流引擎包括:/n流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;/n任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;/n批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;/n筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;/n存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;/n任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。/n...

【技术特征摘要】
1.一种可进行数据批量处理的工作流引擎,其特征在于,所述工作流引擎包括:
流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;
任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;
批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;
筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;
存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;
任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。


2.根据权利要求1所述工作流引擎,其特征在于,所述流程图构建模块包括:
判断子模块,用于判断是否存在任务流程版本更新需求,如果存在,则向版本更新模块发送更新请求,如果不存在,则向流程流程图绘制模块发送流程图绘制请求;
版本更新子模块,用于在判断模块判断存在任务版本更新需求后,进行流程的版本更新;
流程图绘制子模块,用于在判断模块判断出不存在流程版本更新需求后,或者版本更新模块更新完流程版本后,绘制流程图;
流程发布子模块,用于发布流程图绘制模块绘制好的流程图,并将绘制好的流程图发送至缓存区;
反馈信息接收子模块,用于接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。


3.根据权利要求2所述工作流引擎,其特征在于,所述缓存区设有:
流程图更新确定子模块,用于针对缓存区内存放的已完成绘制的流程图,向判断模块发出再次确认是否存在任务流程版本更新需求的指令,由判断模块确定已完成绘制的流程图所对应的同一任务在流程图绘制完成后是否存在任务流程版本更新需求,如果判断模块再次判断后确定已完成绘制的流程图对应的任务流程没有更新需求,则保存该任务对应的流程图;如果判断模块再次判断后确定已完成绘制的流程图对应的任务存在任务流程版本更新的需求,则向标记子模块发出标记指令;
标记子模块,用于在接收到流程图更新确定子模块发出的标记指令后,对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记;
请求子模块,用于标记子模块对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记后,向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完任务流程版本更新的流程图后将更新后的流程图直接发送至缓存区;
删除子模块,用于缓存区收到更新的流程图后删除被标记的流程图。


4.根据权利要求2所述工作流引擎,其特征在于,所述流程图绘制模块包括:
指令收发子模块,用于检测缓存区内部的请求子模块是否向流程图绘制模块提出流程图发送请求,当检测到流程图发送请求后,接收该指令并向流程图发送子模块发出允许将更新后的流程图直接发送至缓存区的指令;
流程图发送子模块,用于在收到指令收发子模块发出的允许将更新后的流程图直接发送至缓存区的指令后,将绘制完成的存在任务流程版本更新的流程图直接发送至缓存区和流程发布模块;
随后,流程发布模块只对更新后的流程图进行发布,不再将更新后的流程图发送至缓存区。


5.根据权利要求1所述工作流引擎,其特征在于,所述任务流程执行模块包括:
流程图获取子模块,用于设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包;
前置批量处理子模块,用于以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对流程图任务包和预留任务包中的多个流程图的前置任务进行批量处理;
批量执行子模块,用于在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;
后置批量处...

【专利技术属性】
技术研发人员:金震张京日耿金帅
申请(专利权)人:北京三维天地科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1