CN111400352B - 一种可进行数据批量处理的工作流引擎 - Google Patents
一种可进行数据批量处理的工作流引擎 Download PDFInfo
- Publication number
- CN111400352B CN111400352B CN202010192615.4A CN202010192615A CN111400352B CN 111400352 B CN111400352 B CN 111400352B CN 202010192615 A CN202010192615 A CN 202010192615A CN 111400352 B CN111400352 B CN 111400352B
- Authority
- CN
- China
- Prior art keywords
- flow chart
- task
- flow
- module
- submodule
- 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.)
- Active
Links
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种可进行数据批量处理的工作流引擎,所述工作流引擎包括:流程图构建模块,用于构建工作流引擎的前端架构模型;任务流程执行模块,用于执行工作流的前置任务和后置任务。所述工作流引擎用于解决主流工作流引擎不够快的问题,具有减少数据验证、任务的执行和控制过程中的耗时的特点。
Description
技术领域
本发明涉及自动化控制技术领域,特别涉及一种可进行数据批量处理的工作流引擎。
背景技术
工作流最早起源于生产组织和办公自动化领域,它是针对平时工作中的业务流程活动而提出的一个概念,目的是根据将工作分解成定义良好的任务或角色,根据一定的原则和过程来实施这些任务并加以监控,从而达到提高效率、控制过程、提升客户服务、增强有效管理业务流程等目的。
国际上主流工作流引擎有IBM BPM、Oracle BPM、Jboss BPMN和Activiti等,这些主流工作流引擎都是遵循BPMN2.0规范的,BPMN2.0将业务流程的可视化和底层的XML表示进行了标准化,利用标准的图元去描述真实的业务发生过程,保证相同的流程在不同的流程引擎得到的执行结果一致。
现在的主流工作流引擎对于多任务的操作方式上没有采用批量进行操作的方式,本质上还是一条一条的去执行任务,所以在数据量较大时,等待时间非常长,当数据量达到上千条时,等待时间是几何级增长的。
发明内容
本发明提供了一种可进行数据批量处理的工作流引擎,用以解决现有的主流工作流引擎处理速度不够快的问题,所采取的技术方案如下:
一种可进行数据批量处理的工作流引擎,所述工作流引擎包括:
流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;
任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;
批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;
筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;
存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;
任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。
进一步地,所述流程图构建模块包括:
判断子模块,用于判断是否存在任务流程版本更新需求,如果存在,则向版本更新模块发送更新请求,如果不存在,则向流程流程图绘制模块发送流程图绘制请求;
版本更新子模块,用于在判断模块判断存在任务版本更新需求后,进行流程的版本更新;
流程图绘制子模块,用于在判断模块判断出不存在流程版本更新需求后,或者版本更新模块更新完流程版本后,绘制流程图;
流程发布子模块,用于发布流程图绘制模块绘制好的流程图,并将绘制好的流程图发送至缓存区;
反馈信息接收子模块,用于接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。
进一步地,所述缓存区设有:
流程图更新确定子模块,用于针对缓存区内存放的已完成绘制的流程图,向判断模块发出再次确认是否存在任务流程版本更新需求的指令,由判断模块确定已完成绘制的流程图所对应的同一任务在流程图绘制完成后是否存在任务流程版本更新需求,如果判断模块再次判断后确定已完成绘制的流程图对应的任务流程没有更新需求,则保存该任务对应的流程图;如果判断模块再次判断后确定已完成绘制的流程图对应的任务存在任务流程版本更新的需求,则向标记子模块发出标记指令;
标记子模块,用于在接收到流程图更新确定子模块发出的标记指令后,对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记;
请求子模块,用于标记子模块对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记后,向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完任务流程版本更新的流程图后将更新后的流程图直接发送至缓存区;
删除子模块,用于缓存区收到更新的流程图后删除被标记的流程图。
进一步地,所述流程图绘制模块包括:
指令收发子模块,用于检测缓存区内部的请求子模块是否向流程图绘制模块提出流程图发送请求,当检测到流程图发送请求后,接收该指令并向流程图发送子模块发出允许将更新后的流程图直接发送至缓存区的指令;
流程图发送子模块,用于在收到指令收发子模块发出的允许将更新后的流程图直接发送至缓存区的指令指令后,将绘制完成的存在任务流程版本更新的流程图直接发送至缓存区和流程发布模块;
随后,流程发布模块只对更新后的流程图进行发布,不再将更新后的流程图发送至缓存区。
进一步地,所述任务流程执行模块包括:
流程图获取子模块,用于设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包;
前置批量处理子模块,用于以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对流程图任务包和预留任务包中的多个流程图的前置任务进行批量处理;
批量执行子模块,用于在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;
后置批量处理子模块,用于针对执行完前置任务后的多个流程图的后置任务进行批量处理。
进一步地,所述任务流程执行模块还包括:
任务存储空间形成子模块,用于在任务流程执行模块中形成一个任务存储空间;
任务存储空间删除子模块,用于在所述任务存储空间中的同一任务对应的重新生成的流程图被提取后立即删除所述任务存储空间。
进一步地,所述流程图获取子模块形成流程图任务包和预留任务包的过程包括:
步骤一,设置流程图获取子模块的流程图提取时间间隔,所述流程图提取时间间隔为二倍的流程图生成平均时间,按照所述时间间隔,提取当前时间间隔内流程图构建模块的缓存区中存放的所有流程图;
步骤二,解析每个流程图的工作节点,识别出工作节点之间的每个工作节点对应的任务内容,各工作节点之间的任务关系以及各任务关系之间的跳转条件;
步骤三,针对每个流程图中的各个工作节点,计算所述工作节点与其他任意流程图中各工作节点之间对应的节点关联度,在计算节点关联度的过程中,如果检测到某一流程图中的工作节点已被另一流程图中的工作节点计算获取到了彼此之间的节点关联度,则该工作节点不再对彼此的节点关联度进行计算;
步骤四,在所有流程图上的各工作节点均获取到与其他任意流程图上的任意工作节点的节点关联度后,将每个流程图上工作节点的任务关联度相加求和,获得每个流程图各自的关联度总值,所述流程图的关联度总值越高说明该流程图对应的任务流程在全部任务流程中的关键性越高;
步骤五,将所有流程图根据关联度总值由高到低的顺序进行排列形成流程图序列,并设置流程图任务包总个数为n=m/10,其中,m为当前获取的流程图的个数,并且,当m>10时,n为向下取整的整数;当m≤10时,n=1;按照流程图序列中的流程图排列顺序,将所提取的所有流程图平均放入各流程图任务包中;如果m>10时,流程图任务包个数n向下取整后剩余的流程图放置于预留任务包中;
步骤六,判断流程图任务包个数,如果流程任务包的个数n≥1,且预留任务包中没有放置任何流程图,则转至执行步骤八;如果流程图任务包的个数n=1,且预留任务包中放置有流程图,则在流程图任务包发送至前置批量处理子模块后立即将所述预留任务包发送至前置批量处理子模块;如果流程图任务包n>1,且预留任务包中放置有流程图,则转至执行步骤七;
步骤七,判断预留任务包中的各流程图中每个工作节点的节点关联度的大小;确定与预留任务包中的流程图节点关联度对大的流程图,将预留任务包中的流程图放置与其节点关联度最大的流程图所在的流程任务包中;如果确定与预留任务包中的流程图节点关联度对大的流程图也在预留任务包中,则将两个流程图提出形成新增流程图任务包;
步骤八,将流程图任务包按照任务关联度由高到低的顺序依次发送至前置批量处理子模块。
在一个实施例中,所述针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图,包括:
对工作流引擎接收的批量的任务流程中的每个任务流程中的执行步骤进行识别;
针对所识别出的任一个任务流程中的所有执行步骤执行如下校验操作:当相邻的两个执行步骤中包括相同的动作时,按照如下过滤算法判断所述相邻的两个执行步骤中的可疑步骤,并对所述可疑步骤进行标注,将标注出的可疑步骤输出供人工校验;获取人工校验结果,根据人工校验结果构建所述任一个任务流程对应的流程图;
其中,所述过滤算法包括如下公式(1)和(2):
其中,βii表示动作ηi在第n-1个执行步骤中出现时,在下一个执行步骤即第n个执行步骤中出现动作ηi的概率;xn用来标识第n个执行步骤中出现的动作;ηi用来标识第i个动作;表示第n个执行步骤中出现的形容词序列;xn+1用来标识第n+1个执行步骤中出现的动作;N表示所述任一个任务流程中所有执行步骤的步骤总数目;αik表示当形容词φk出现时ηi出现的概率;φk表示第k个形容词;un用于标识第n个执行步骤中出现的形容词;所述形容词包括预设的用于表明动作执行结果的词;
判断所述βii是否等于或小于第一预设值、并判断所述αik是否等于或小于第二预设值;
当所述βii等于或小于第一预设值、并且所述αik等于或小于第二预设值时,判定所述相邻的两个执行步骤为可疑步骤;
当所述βii大于第一预设值或者所述αik大于第二预设值时,判定所述相邻的两个执行步骤不是可疑步骤。
本发明有益效果:
本发明提出的一种可进行数据批量处理的工作流引擎通过批量处理的操作方式有效减少了数据处理过程中的数据验证、任务的执行和控制过程中的耗时,大大提高了数据处理速度,同时,该工作流引擎通过流程图版本更新方式有效提高了任务流程处理的准确性。
附图说明
图1为发明所述工作流引擎的系统框图;
图2为发明所述流程图构建模块的结构框图;
图3为发明所述任务流程执行模块的结构框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明提出了一种可进行数据批量处理的工作流引擎,旨在解决解决现有的主流工作流引擎处理速度不够快的问题。
本发明实施例提出了一种可进行数据批量处理的工作流引擎,如图1所示,所述工作流引擎包括:
流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;
任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;其中,前置任务是指列出任务开始或完成所依赖的前置任务;后置任务与前置任务相对,使后置要动作处理的任务。
批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;
筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;
存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;
任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。
上述方案的工作原理为,通过流程图构建模块建立生成任务流程对应的流程图,然后通过任务流程执行模块对该流程图进行数据处理和任务执行,该任务流程执行模块采用批量处理的数据处理模式,能够对工作流隐形模型构建模块所形成的大量任务流程图进行批量处理和任务的批量执行。
利用批量处理结果筛选模块对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;然后通过筛选结果通知模块向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;利用存储空间检测模块检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;最后,利用任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。
上述方案的技术效果为:工作流引擎通过批量处理的操作方式有效减少了数据处理过程中的数据验证、任务的执行和控制过程中的耗时,大大提高了数据处理速度。同时,实时检测批量处理过程中的数据处理失败的任务流程,能够有效对任务的批量处理和批量执行进行质量监控,在提高数据处理速度的同时提高了的数据处理质量。同时,利用切换方式保留了旧任务在前置批量处理子模块中的处理位置,将调整后的新任务与旧任务直接切换,保证了同一任务在前置任务批量处理过程中的优先权和处理空间(即原旧任务所占用的处理空间及处理优先级),使出现处理错误的任务无需再重新进行排队等候批量处理,避免数据处理过程中出现错误的任务等待较长时间无法被执行,保证了批量处理过程中,各任务均在能够被快速处理并执行的情况下完成。
本发明的一个实施例,如图2所示,所述流程图构建模块包括:
判断子模块,用于判断是否存在任务流程版本更新需求,如果存在,则向版本更新模块发送更新请求,如果不存在,则向流程流程图绘制模块发送流程图绘制请求;
版本更新子模块,用于在判断模块判断存在任务版本更新需求后,进行流程的版本更新;
流程图绘制子模块,用于在判断模块判断出不存在流程版本更新需求后,或者版本更新模块更新完流程版本后,绘制流程图;
流程发布子模块,用于发布流程图绘制模块绘制好的流程图,并将绘制好的流程图发送至缓存区;
反馈信息接收子模块,用于接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。
上述技术方案的工作原理为:判断子模块在接收到任务流程后判断是否存在任务流程版本更新需求,如果存在,则通过版本更新子模块在判断模块判断存在任务版本更新需求后进行流程的版本更新,获得最新版本的任务流程,然后将最新版本的任务流程发送至流程图绘制模块进行流程图绘制,如果不存在,则将任务流程发送至流程图绘制模块进行流程图绘制。最后,通过流程发布模块对绘制完成的流程图进行发布,并将绘制好的流程图发送至缓存区。另一方面,流程图构建子模块通过反馈信息接收模块接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。
上述技术方案的工作效果为:能够有效获得最新版本的任务流程,使生成的流程图与最新任务流程相匹配,提高了流程图构建模块所生成的流程图与任务流程的匹配度,避免后续的任务流程执行模块所处理和执行的流程图为过时的任务流程,提高了工作流引擎整体数据处理和任务执行的准确度和实时性。同时,通过反馈信息接收模块的设置使流程图构建模块具有获取任务执行结果反馈信息的功能,能够实时获取任务流程执行模块的处理失败的流程图信息,并根据获取到的反馈信息进行流程图处理调整,形成新的流程图再进行任务执行。此方式使工作流引擎具有信息反馈功能,有效提高了工作流引擎失败任务的处理能力和处理速度。
本发明的一个实施例,如图2所示,所述缓存区设有:
流程图更新确定子模块,用于针对缓存区内存放的已完成绘制的流程图,向判断模块发出再次确认是否存在任务流程版本更新需求的指令,由判断模块确定已完成绘制的流程图所对应的同一任务在流程图绘制完成后是否存在任务流程版本更新需求,如果判断模块再次判断后确定已完成绘制的流程图对应的任务流程没有更新需求,则保存该任务对应的流程图;如果判断模块再次判断后确定已完成绘制的流程图对应的任务存在任务流程版本更新的需求,则向标记子模块发出标记指令;
标记子模块,用于在接收到流程图更新确定子模块发出的标记指令后,对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记;
请求子模块,用于标记子模块对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记后,向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完任务流程版本更新的流程图后将更新后的流程图直接发送至缓存区;
删除子模块,用于缓存区收到更新的流程图后删除被标记的流程图。
上述技术方案的工作原理为:缓存区中对已有的任务流程图进行判断,获取判断模块中的判断结果信息,确定相同任务的流程是否有更新需求,如果没有更新需求,则保存对应的流程图,等待后续任务流程执行模块中的流程图获取子模块提取相应的任务流程图;如果相同任务已有流程更新需求,则将该流程图进行标记,被标记的流程图无法被流程图获取子模块进行提取,同时,缓存区向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完更新后的流程图后,直接将更新的流程图发送至缓存区,缓存区在收到更新的流程图后,将被标记的原流程图删除。
上述技术方案的技术效果为:这种方式能够保证后续执行模块所执行的任务均为工作流引擎的最新工作需求,在任务存在快速更新需求的情况下,能够保证后续执行系统有效快速优先的执行到最新任务需求,进一步执行任务与最新任务之间的匹配度,进而提高了工作流引擎数据处理和任务执行的准确性,同时,有效减少多余过时任务流程的数据处理所带来的能量和时间的消耗,有效提高工作流引擎整体的执行速度。
本发明的一个实施例,如图2所示,所述流程图绘制模块包括:
指令收发子模块,用于检测缓存区内部的请求子模块是否向流程图绘制模块提出流程图发送请求,当检测到流程图发送请求后,接收该指令并向流程图发送子模块发出允许将更新后的流程图直接发送至缓存区的指令;
流程图发送子模块,用于在收到指令收发子模块发出的允许将更新后的流程图直接发送至缓存区的指令指令后,将绘制完成的存在任务流程版本更新的流程图直接发送至缓存区和流程发布模块;
随后,流程发布模块只对更新后的流程图进行发布,不再将更新后的流程图发送至缓存区。
上述技术方案的工作原理:流程图绘制模块通过提取指令接收模块接收到缓存区提出的流程图发送请求后,通过流程图发送子模块在绘制完更新后的流程图后,直接将更新的流程图发送至缓存区。
上述技术方案的技术效果为:这种方式能够保证后续执行模块所执行的任务均为工作流引擎的最新工作需求,在任务存在快速更新需求的情况下,能够保证后续执行系统有效快速优先的执行到最新任务需求,进一步执行任务与最新任务之间的匹配度,进而提高了工作流引擎数据处理和任务执行的准确性,同时,通过流程图绘制模块直接将更新后的流程图直接发送至缓存区而省略流程发布模块进行流程图发送的步骤,能够再任务临时更新数据大量存在的情况下,极大程度上加快流程图传递时间,使后续任务执行相关模块能够尽快出离道最新任务,进而提高工作流引擎的整体数据处理速度。
本发明的一个实施例,如图3所示,所述任务流程执行模块包括:
流程图获取子模块,用于设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包;
前置批量处理子模块,用于以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对流程图任务包和预留任务包中的多个流程图的前置任务进行批量处理;
批量执行子模块,用于在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;
后置批量处理子模块,用于针对执行完前置任务后的多个流程图的后置任务进行批量处理。
上述技术方案的工作原理:所述任务流程执行模块通过流程图获取子模块设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包,然后通过前置批量处理子模块以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对前置任务进行批量处理,并通过批量执行子模块在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;最后,通过后置批量处理子模块针对多个流程图的后置任务进行批量处理进而获得后之任务的处理数据。
上述技术方案的技术效果为:任务流程执行模块通过批量数据处理和批量任务执行的操作方式有效减少了数据处理过程中的数据验证、任务的执行和控制过程中的耗时,大大提高了数据处理速度。
本发明的一个实施例,如图3所示,所述任务流程执行模块还包括:
任务存储空间形成子模块,用于在任务流程执行模块中形成一个存储空间,所述存储空间用于存储前置批量处理子模块处理失败的流程图经由流程图构建模块重新生成的同一任务对应的新流程图;
任务存储空间删除子模块,用于在所述任务存储空间中的同一任务对应的重新生成的流程图被提取后立即删除所述任务存储空间。
上述技术方案的工作原理为:针对数据处理失败的流程图,当流程图构建模块重新生成的同一任务对应的新流程图并发送到任务流程执行模块后,在任务流程执行模块内临时通过任务存储空间形成子模块生成一个存储空间存放新生成的流程图,在该新流程图被调用处理执行后,则立即通过任务存储空间删除子模块将该存储空间删除。
上述技术方案的技术效果为:这种设计使任务存储空间在任务流程执行模块中具有了随时生成、随时删除的特性,保证了任务流程执行模块中的空间不被长时间的额外附加任务占用,使任务流程执行模块内具有足够的空间余量,同时有效将失败任务对应的新任务流程图和系统正常运行输入进来的新任务流程图进行分别存储和隔离,使两类任务的执行能够互不干扰,避免出现执行顺序混乱,执行出错的现象发生。
本发明的一个实施例,所述流程图获取子模块在获取流程图的时候,将流程图分类打包为流程图任务包和预留任务包;所述流程图获取子模块形成流程图任务包和预留任务包的过程包括:
步骤一,设置流程图获取子模块的流程图提取时间间隔,所述流程图提取时间间隔为二倍的流程图生成平均时间,按照所述时间间隔,提取当前时间间隔内流程图构建模块的缓存区中存放的所有流程图;
步骤二,解析每个流程图的工作节点,识别出工作节点之间的每个工作节点对应的任务内容,各工作节点之间的任务关系以及各任务关系之间的跳转条件;
步骤三,针对每个流程图中的各个工作节点,计算所述工作节点与其他任意流程图中各工作节点之间对应的节点关联度,在计算节点关联度的过程中,如果检测到某一流程图中的工作节点已被另一流程图中的工作节点计算获取到了彼此之间的节点关联度,则该工作节点不再对彼此的节点关联度进行计算;
步骤四,在所有流程图上的各工作节点均获取到与其他任意流程图上的任意工作节点的节点关联度后,将每个流程图上工作节点的任务关联度相加求和,获得每个流程图各自的关联度总值,所述流程图的关联度总值越高说明该流程图对应的任务流程在全部任务流程中的关键性越高;
步骤五,将所有流程图根据关联度总值由高到低的顺序进行排列形成流程图序列,并设置流程图任务包总个数为n=m/10,其中,m为当前获取的流程图的个数,并且,当m>10时,n为向下取整的整数;当m≤10时,n=1;按照流程图序列中的流程图排列顺序,将所提取的所有流程图平均放入各流程图任务包中;如果m>10时,流程图任务包个数n向下取整后剩余的流程图放置于预留任务包中;
步骤六,判断流程图任务包个数,如果流程任务包的个数n≥1,且预留任务包中没有放置任何流程图,则转至执行步骤八;如果流程图任务包的个数n=1,且预留任务包中放置有流程图,则在流程图任务包发送至前置批量处理子模块后立即将所述预留任务包发送至前置批量处理子模块;如果流程图任务包n>1,且预留任务包中放置有流程图,则转至执行步骤七;
步骤七,判断预留任务包中的各流程图中每个工作节点的节点关联度的大小;确定与预留任务包中的流程图节点关联度对大的流程图,将预留任务包中的流程图放置与其节点关联度最大的流程图所在的流程任务包中;如果确定与预留任务包中的流程图节点关联度对大的流程图也在预留任务包中,则将两个流程图提出形成新增流程图任务包;
步骤八,将流程图任务包按照任务关联度由高到低的顺序依次发送至前置批量处理子模块。
上述技术方案的技术效果为:流程图的打包处理方式能够使任务在后续批量处理过程中能够按序进行,避免后期批量处理执行过程中,出现任务关联度较低的流程来回切换执行,导致出现同一个任务处理执行多次或任务遗漏执行的情况,减少了数据处理的错误率,提高任务流程的数据处理准确性;同时,也减少不同属性的任务流程执行时的切换次数,有效提高数据处理速度。另一方面,通过关联度的顺序进行流程图处理,能够保证在批量数据处理过程中,对关键性的任务流程(即任务关联度高的任务流程),进行优先处理,这样能够避免任务流程图在数据处理时不会因为关联任务没处理而导致该任务流程处理缓慢或者无法处理的现象,保证了各任务流程各自和整体之间的数据处理连续性,同时也避免因数据处理等待而造成数据堆积,占用工作流引擎空间和数据处理资源的问题;另一方面,使后续前置任务处理模块能够根据优先度以流程任务包和预留任务包为单位,进行有序的、逐一的处理方式,避免了批量处理过程中,多项任务之间的数据处理干扰,进一步降低数据处理出错率并提高了批量处理的效率。
在一个实施例中,所述针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图,包括:
对工作流引擎接收的批量的任务流程中的每个任务流程中的执行步骤进行识别;
针对所识别出的任一个任务流程中的所有执行步骤执行如下校验操作:当相邻的两个执行步骤中包括相同的动作时,按照如下过滤算法判断所述相邻的两个执行步骤中的可疑步骤,并对所述可疑步骤进行标注,将标注出的可疑步骤输出供人工校验;获取人工校验结果,根据人工校验结果构建所述任一个任务流程对应的流程图(例如当人工校验结果为删除可疑步骤,则将可疑步骤从所有执行步骤中删除后,构建流程图;当人工校验结果为保留可疑步骤,则将保留该可疑步骤后,构建流程图);
其中,所述过滤算法包括如下公式(1)和(2):
其中,βii表示动作ηi在第n-1个执行步骤中出现时,在下一个执行步骤即第n个执行步骤中出现动作ηi的概率;xn用来标识第n个执行步骤中出现的动作;ηi用来标识第i个动作;表示第n个执行步骤中出现的形容词序列;xn+1用来标识第n+1个执行步骤中出现的动作;N表示所述任一个任务流程中所有执行步骤的步骤总数目;αik表示当形容词φk出现时ηi出现的概率;φk表示第k个形容词;un用于标识第n个执行步骤中出现的形容词;所述形容词包括预设的用于表明动作执行结果的词(例如“开始”、“结束”、“完毕”、“满足”、“超过”、“等于”、“大于”、“小于”等);
判断所述βii是否等于或小于第一预设值、并判断所述αik是否等于或小于第二预设值;
当所述βii等于或小于第一预设值、并且所述αik等于或小于第二预设值时,判定所述相邻的两个执行步骤为可疑步骤;
当所述βii大于第一预设值或者所述αik大于第二预设值时,判定所述相邻的两个执行步骤不是可疑步骤。
上述技术方案的有益效果为:当“对工作流引擎接收的批量的任务流程中的每个任务流程中的执行步骤进行识别”这一步骤的识别结果中存在执行步骤重复时,按照上述算法可快速判断出是否有重复的执行步骤,提高最后确定出的流程图的准确度。并且,上述算法是考虑到实际情况中,错误的重复出现执行步骤一般出现在相邻两个执行步骤之间,因此,上述算法就针对相邻两个执行步骤进行计算,从而节省了计算时间,筛选速度也比较快。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离发明的精神和范围。这样,倘若发明的这些修改和变型属于发明权利要求及其等同技术的范围之内,则发明也意图包含这些改动和变型在内。
Claims (8)
1.一种可进行数据批量处理的工作流引擎,其特征在于,所述工作流引擎包括:
流程图构建模块,用于针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图;
任务流程执行模块,用于接收流程图构建模块生成的流程图,并针对所述流程图进行前置任务和后置任务的批量数据处理,以及前置任务和后置任务的批量执行;
批量处理结果筛选模块,用于对前置任务批量处理和后置任务批量处理的数据处理结果进行筛选,并获得数据处理失败的流程图;
筛选结果通知模块,用于向流程图构建模块发送数据处理失败的流程图对应的任务流程,并启动流程图构建模块对数据处理失败的流程图所对应的任务流程重新构建流程图;
存储空间检测模块,用于检测任务流程执行模块中是否存在任务存储空间,所述存储空间用于存储前置批量处理和后置批量处理过程中数据处理失败的流程图对应的任务流程经由流程图构建模块重新生成的同一任务对应的流程图;
任务切换模块,用于查找此前处理失败的流程图在任务流程执行模块中的数据处理位置,并将处理失败的流程图与任务存储空间中的同一任务对应的重新生成的流程图进行切换,其中,所述数据处理位置是指前置批量处理和后置批量处理过程中流程图的数据处理位置。
2.根据权利要求1所述工作流引擎,其特征在于,所述流程图构建模块包括:
判断子模块,用于判断是否存在任务流程版本更新需求,如果存在,则向版本更新模块发送更新请求,如果不存在,则向流程流程图绘制模块发送流程图绘制请求;
版本更新子模块,用于在判断模块判断存在任务版本更新需求后,进行流程的版本更新;
流程图绘制子模块,用于在判断模块判断出不存在流程版本更新需求后,或者版本更新模块更新完流程版本后,绘制流程图;
流程发布子模块,用于发布流程图绘制模块绘制好的流程图,并将绘制好的流程图发送至缓存区;
反馈信息接收子模块,用于接收任务流程执行模块发出的前置任务批量处理和后置任务批量处理过程中数据处理失败的任务流程信息。
3.根据权利要求2所述工作流引擎,其特征在于,所述缓存区设有:
流程图更新确定子模块,用于针对缓存区内存放的已完成绘制的流程图,向判断模块发出再次确认是否存在任务流程版本更新需求的指令,由判断模块确定已完成绘制的流程图所对应的同一任务在流程图绘制完成后是否存在任务流程版本更新需求,如果判断模块再次判断后确定已完成绘制的流程图对应的任务流程没有更新需求,则保存该任务对应的流程图;如果判断模块再次判断后确定已完成绘制的流程图对应的任务存在任务流程版本更新的需求,则向标记子模块发出标记指令;
标记子模块,用于在接收到流程图更新确定子模块发出的标记指令后,对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记;
请求子模块,用于标记子模块对缓存区内的存在任务流程版本更新的已完成绘制的流程图进行标记后,向流程图绘制模块提出流程图发送请求,使流程图绘制模块在绘制完任务流程版本更新的流程图后将更新后的流程图直接发送至缓存区;
删除子模块,用于缓存区收到更新的流程图后删除被标记的流程图。
4.根据权利要求2所述工作流引擎,其特征在于,所述流程图绘制模块包括:
指令收发子模块,用于检测缓存区内部的请求子模块是否向流程图绘制模块提出流程图发送请求,当检测到流程图发送请求后,接收该指令并向流程图发送子模块发出允许将更新后的流程图直接发送至缓存区的指令;
流程图发送子模块,用于在收到指令收发子模块发出的允许将更新后的流程图直接发送至缓存区的指令后,将绘制完成的存在任务流程版本更新的流程图直接发送至缓存区和流程发布模块;
随后,流程发布模块只对更新后的流程图进行发布,不再将更新后的流程图发送至缓存区。
5.根据权利要求1所述工作流引擎,其特征在于,所述任务流程执行模块包括:
流程图获取子模块,用于设置流程图提取时间间隔,并从流程图构建模块的缓存区中提取当前时间见过的所有流程图,计算流程图的节点关联度和任务关联度,根据节点关联度和任务关联度对流程图进行打包,形成流程图任务包和预留任务包;
前置批量处理子模块,用于以流程图任务包和预留任务包为单位,按照流程图任务包和预留任务包的发送顺序,对流程图任务包和预留任务包中的多个流程图的前置任务进行批量处理;
批量执行子模块,用于在前置批量处理子模块进行前置任务批量处理后,根据任务处理数据批量执行前置任务;
后置批量处理子模块,用于针对执行完前置任务后的多个流程图的后置任务进行批量处理。
6.根据权利要求1所述工作流引擎,其特征在于,所述任务流程执行模块还包括:
任务存储空间形成子模块,用于在任务流程执行模块中形成一个任务存储空间;
任务存储空间删除子模块,用于在所述任务存储空间中的同一任务对应的重新生成的流程图被提取后立即删除所述任务存储空间。
7.根据权利要求5所述工作流引擎,其特征在于,所述流程图获取子模块形成流程图任务包和预留任务包的过程包括:
步骤一,设置流程图获取子模块的流程图提取时间间隔,所述流程图提取时间间隔为二倍的流程图生成平均时间,按照所述时间间隔,提取当前时间间隔内流程图构建模块的缓存区中存放的所有流程图;
步骤二,解析每个流程图的工作节点,识别出工作节点之间的每个工作节点对应的任务内容,各工作节点之间的任务关系以及各任务关系之间的跳转条件;
步骤三,针对每个流程图中的各个工作节点,计算所述工作节点与其他任意流程图中各工作节点之间对应的节点关联度,在计算节点关联度的过程中,如果检测到某一流程图中的工作节点已被另一流程图中的工作节点计算获取到了彼此之间的节点关联度,则该工作节点不再对彼此的节点关联度进行计算;
步骤四,在所有流程图上的各工作节点均获取到与其他任意流程图上的任意工作节点的节点关联度后,将每个流程图上工作节点的任务关联度相加求和,获得每个流程图各自的关联度总值,所述流程图的关联度总值越高说明该流程图对应的任务流程在全部任务流程中的关键性越高;
步骤五,将所有流程图根据关联度总值由高到低的顺序进行排列形成流程图序列,并设置流程图任务包总个数为n=m/10,其中,m为当前获取的流程图的个数,并且,当m>10时,n为向下取整的整数;当m≤10时,n=1;按照流程图序列中的流程图排列顺序,将所提取的所有流程图平均放入各流程图任务包中;如果m>10时,流程图任务包个数n向下取整后剩余的流程图放置于预留任务包中;
步骤六,判断流程图任务包个数,如果流程任务包的个数n≥1,且预留任务包中没有放置任何流程图,则转至执行步骤八;如果流程图任务包的个数n=1,且预留任务包中放置有流程图,则在流程图任务包发送至前置批量处理子模块后立即将所述预留任务包发送至前置批量处理子模块;如果流程图任务包n>1,且预留任务包中放置有流程图,则转至执行步骤七;
步骤七,判断预留任务包中的各流程图中每个工作节点的节点关联度的大小;确定与预留任务包中的流程图节点关联度对大的流程图,将预留任务包中的流程图放置与其节点关联度最大的流程图所在的流程任务包中;如果确定与预留任务包中的流程图节点关联度对大的流程图也在预留任务包中,则将两个流程图提出形成新增流程图任务包;
步骤八,将流程图任务包按照任务关联度由高到低的顺序依次发送至前置批量处理子模块。
8.如权利要求1所述工作流引擎,其特征在于,所述针对工作流引擎接收的批量的任务流程,分别构建每个任务流程对应的流程图,包括:
对工作流引擎接收的批量的任务流程中的每个任务流程中的执行步骤进行识别;
针对所识别出的任一个任务流程中的所有执行步骤执行如下校验操作:当相邻的两个执行步骤中包括相同的动作时,按照如下过滤算法判断所述相邻的两个执行步骤中的可疑步骤,并对所述可疑步骤进行标注,将标注出的可疑步骤输出供人工校验;获取人工校验结果,根据人工校验结果构建所述任一个任务流程对应的流程图;
其中,所述过滤算法包括如下公式(1)和(2):
其中,βii表示动作ηi在第n-1个执行步骤中出现时,在下一个执行步骤即第n个执行步骤中出现动作ηi的概率;xn用来标识第n个执行步骤中出现的动作;ηi用来标识第i个动作;表示第n个执行步骤中出现的形容词序列;xn+1用来标识第n+1个执行步骤中出现的动作;N表示所述任一个任务流程中所有执行步骤的步骤总数目;αik表示当形容词φk出现时ηi出现的概率;φk表示第k个形容词;un用于标识第n个执行步骤中出现的形容词;所述形容词包括预设的用于表明动作执行结果的词;
判断所述βii是否等于或小于第一预设值、并判断所述αik是否等于或小于第二预设值;
当所述βii等于或小于第一预设值、并且所述αik等于或小于第二预设值时,判定所述相邻的两个执行步骤为可疑步骤;
当所述βii大于第一预设值或者所述αik大于第二预设值时,判定所述相邻的两个执行步骤不是可疑步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010192615.4A CN111400352B (zh) | 2020-03-18 | 2020-03-18 | 一种可进行数据批量处理的工作流引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010192615.4A CN111400352B (zh) | 2020-03-18 | 2020-03-18 | 一种可进行数据批量处理的工作流引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400352A CN111400352A (zh) | 2020-07-10 |
CN111400352B true CN111400352B (zh) | 2020-11-17 |
Family
ID=71432609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010192615.4A Active CN111400352B (zh) | 2020-03-18 | 2020-03-18 | 一种可进行数据批量处理的工作流引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400352B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596865A (zh) * | 2020-12-22 | 2021-04-02 | 航天信息股份有限公司企业服务分公司 | 基于工作流事务推送待办消息的系统 |
CN112785263A (zh) * | 2021-01-22 | 2021-05-11 | 山西青峰软件股份有限公司 | 一种工作流引擎动态生成流程模型的方法及系统 |
CN117724706B (zh) * | 2024-02-06 | 2024-05-03 | 湖南盛鼎科技发展有限责任公司 | 批流一体流程化实时处理异构平台海量数据的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699599A (zh) * | 2013-12-13 | 2014-04-02 | 华中科技大学 | 一种基于Storm实时流计算框架的消息可靠处理保障方法 |
CN108900335A (zh) * | 2018-06-28 | 2018-11-27 | 泰康保险集团股份有限公司 | 基于Hadoop的工作流管理方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7665093B2 (en) * | 2004-12-22 | 2010-02-16 | Microsoft Corporation | Synchronization of runtime and application state via batching of workflow transactions |
US9430284B2 (en) * | 2014-06-26 | 2016-08-30 | Vmware, Inc. | Processing virtual machine objects through multistep workflows |
US11289077B2 (en) * | 2014-07-15 | 2022-03-29 | Avaya Inc. | Systems and methods for speech analytics and phrase spotting using phoneme sequences |
US20160205248A1 (en) * | 2015-01-09 | 2016-07-14 | Spokeadot, LLC | System, method and apparatus for mobile call centers |
US11195131B2 (en) * | 2018-05-09 | 2021-12-07 | Microsoft Technology Licensing, Llc | Increasing usage for a software service through automated workflows |
CN108829501B (zh) * | 2018-05-18 | 2021-09-24 | 天津科技大学 | 一种基于改进遗传算法的批处理科学工作流任务调度算法 |
CN110209646A (zh) * | 2019-05-14 | 2019-09-06 | 汇通达网络股份有限公司 | 一种基于实时流式计算的数据平台系统 |
-
2020
- 2020-03-18 CN CN202010192615.4A patent/CN111400352B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699599A (zh) * | 2013-12-13 | 2014-04-02 | 华中科技大学 | 一种基于Storm实时流计算框架的消息可靠处理保障方法 |
CN108900335A (zh) * | 2018-06-28 | 2018-11-27 | 泰康保险集团股份有限公司 | 基于Hadoop的工作流管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111400352A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400352B (zh) | 一种可进行数据批量处理的工作流引擎 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN107239335A (zh) | 分布式系统的作业调度系统及方法 | |
CN110704231A (zh) | 一种故障处理方法及装置 | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
CN108536532A (zh) | 一种批量任务处理方法及系统 | |
WO2023066084A1 (zh) | 算力分配方法、装置及算力服务器 | |
CN106803790A (zh) | 一种集群系统的升级控制方法及装置 | |
CN110647447B (zh) | 用于分布式系统的异常实例检测方法、装置、设备和介质 | |
CN110502509A (zh) | 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置 | |
CN110764936A (zh) | 一种数据采集方法及装置 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN115150471B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN107070720A (zh) | 云平台异常事件的监控及自动处理的方法和框架 | |
US20200293543A1 (en) | Method and apparatus for transmitting data | |
CN116663639B (zh) | 一种梯度数据同步方法、系统、装置及介质 | |
CN107463555A (zh) | 删除中间层数据的方法、系统和装置 | |
CN110232486B (zh) | 基于k最短路径的多车间综合调度方法 | |
US7680921B2 (en) | Management system, management computer, managed computer, management method and program | |
CN113793213B (zh) | 一种异步信贷风控断点续作的决策方式的实现方法及装置 | |
CN107122246B (zh) | 智能数值模拟作业管理与反馈方法 | |
CN112052087B (zh) | 动态资源调整与迁移的深度学习训练系统及方法 | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN114035906A (zh) | 虚拟机迁移方法、装置、电子设备及存储介质 | |
CN113010295A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |