CN114663063A - 工作流引擎的实现方法、装置和设备及存储介质 - Google Patents
工作流引擎的实现方法、装置和设备及存储介质 Download PDFInfo
- Publication number
- CN114663063A CN114663063A CN202210331624.6A CN202210331624A CN114663063A CN 114663063 A CN114663063 A CN 114663063A CN 202210331624 A CN202210331624 A CN 202210331624A CN 114663063 A CN114663063 A CN 114663063A
- Authority
- CN
- China
- Prior art keywords
- node
- flow
- execution result
- executed
- workflow engine
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了工作流引擎的实现方法、装置和设备及存储介质,通过设置补偿任务和定时任务,可以在必要时发起全流程重试,确保流程更顺畅执行,提高流程执行的效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种工作流引擎的实现方法、装置和设备及存储介质。
背景技术
工作流引擎(即流程引擎)是用来驱动业务按照设定的固定流程去流转的一套代码程序。在复杂多变的业务情况下,使用既定的流程能够大大降低设计业务的成本,并且保证了业务执行的准确性。
工作流引擎包括依次流转的多个节点,并给每个节点设置执行成功和执行失败的后续处理步骤。然而,目前使用的工作流引擎,存在执行不顺畅,效率不高的问题。
发明内容
本申请实施例提供一种工作流引擎的实现方法、装置和设备及存储介质。
第一方面,本申请实施例提供一种工作流引擎的实现方法,所述工作流引擎包括用于实现流程的多个节点,所述方法包括:在流程开始时生成补偿任务并启动定时任务;在流程结束时终止补偿任务;在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
在一些可选的实施方式中,所述方法还包括:在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
在一些可选的实施方式中,所述方法还包括:在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
在一些可选的实施方式中,在所述发起全流程重试之后,所述方法还包括:在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;若获取的执行结果为处理中,则重试执行该节点。
第二方面,本申请实施例提供一种工作流引擎的实现装置,所述工作流引擎包括用于实现流程的多个节点,所述装置包括:补偿任务处理模块,被配置成在流程开始时生成补偿任务,在流程结束时终止补偿任务;定时任务处理模块,被配置成在流程开始时启动定时任务,以及,在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
在一些可选的实施方式中,所述装置还包括:自动审批处理模块,被配置成在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
在一些可选的实施方式中,所述装置还包括:第一异常处理模块,被配置成在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
在一些可选的实施方式中,所述装置还包括:第二异常处理模块,被配置成在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;若获取的执行结果为处理中,则重试执行该节点。
第三方面,本申请实施例提供一种计算机设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面所述的工作流引擎的实现方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现如第一方面所述的工作流引擎的实现方法。
为了解决目前使用的工作流引擎存在执行不顺畅,效率不高的问题,本申请实施例提出了工作流引擎的实现方法、装置和设备及存储介质,通过设置补偿任务和定时任务,可以在必要时发起全流程重试,确保流程更顺畅执行,提高流程执行的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显。附图仅用于示出具体实施方式的目的,而并不认为是对本发明的限制。在附图中:
图1为本申请实施例基于activiti工作流引擎的典型的请假流程的流程示意图;
图2为本申请实施例本申请实施例中基于工作流引擎的一个业务流程的流程示意图;
图3为本申请实施例工作流引擎的实现装置的结构示意图;
图4为本申请实施例计算机设备的硬件组成结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
参考图1,是基于activiti工作流引擎的典型的请假流程,其包括多个节点,例如填写审批信息、主管审批、人事审批等。Activiti是由Alfresco软件发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。
结合图1所示的流程,目前使用的工作流引擎,可能存在以下至少一种缺点:
缺点一:
从一个节点(例如填写审批信息)流转到下一个节点(例如主管审批),一般是由人(例如主管)手工发起的,效率非常低。
缺点二:
可能人工长时间没有触发下一个节点(例如填写审批信息、主管审批、人事审批),导致工作流引擎长时间不执行的情况,工作流程一直在处理中的状态。
缺点三:
某个节点(例如填写审批信息、主管审批、人事审批)出现异常时,需要人工发起重试,人力成本高,整体耗时长。
缺点四:
某一节点(例如填写审批信息、主管审批、人事审批)缺少异常处理步骤,可能一直处于异常的状态。
总的来说,目前使用的工作流引擎,存在执行不顺畅,效率不高的问题。
为了解决上述问题,本申请实施例提出一种工作流引擎的实现方法、装置和设备及存储介质。
参考图2,是本申请实施例中基于工作流引擎的一个业务流程的流程示意图,该工作流引擎包括用于实现流程的多个节点,如A节点、B节点、C节点等。若以请假流程为例,A、B、C节点可以分别是填写审批信息、主管审批、人事审批。
本申请实施例不限定所使用的的工作流引擎的具体类型,例如可以采用Activiti框架,或者也可以采用其它框架如Camunda、Flowable、jBPM等等。
如图2所示,本申请实施例中对工作流引擎进行如下配置:
(1)每个节点设置自动审批条件,用于快速审批通过。
若满足审批条件,则确认该节点的执行结果为成功;否则,确认该节点的执行结果为失败或者转为人工执行。
(2)每个节点设置异常处理步骤,防止工作流一直处于异常状态。
通常每个节点具有两个出口,若节点的执行结果为成功,则进入下一个节点;若节点的执行结果为失败,则可能进入另一个节点,例如“结束”。但节点可能会有第三个执行结果,即“处理中”,此时没有出口。
某个节点可能会发生一直处于“处理中”的异常,导致工作流无法继续而处于异常状态。某个节点也可能因为数据有误例如格式错误导致无法识别,而无法输出结果,导致工作流无法继续而处于异常状态。
为此,本申请实施例为各个节点设置异常处理步骤,用来处理可能发生的异常。异常处理步骤可包括:暂停流程,捕获异常并向用户反馈异常,以便后续经由人工介入等方式来解决当前的异常状态。
(3)每个节点设置幂等处理步骤,支持成功(或失败)节点直接跳过,处理中节点则重试执行。
本申请实施例中,幂等(Idempotent)是指重试发起的新一轮流程中某个节点获取并使用上一轮流程中该节点的执行结果,作为新一轮流程中该节点的执行结果,而不需要重复执行,以此节省时间,提高效率。可选的,可以设置为若上一轮执行结果为成功(或失败),则使用该结果,从而直接跳过该节点,进入相应的下一节点。可选的,可以设置为若上一轮执行结果为处理中,则新一轮流程中该节点重试执行,即重新执行一次。
(4)流程开始时发送补偿任务,流程结束时发起终止补偿任务。
本申请实施例设置为在流程开始时,发送补偿任务的信息到数据库(步骤1.1),数据库记录该信息,以便后续整个流程没有完成正确执行时,发起重试等补偿性操作。本申请实施例还设置为在流程结束时,终止补偿任务并发送信息到数据库(步骤2.1),以指示后续不需要发起补偿性操作。
(5)定时任务发起全流程补偿任务。
本申请实施例设置一个定时任务,定时任务可设置为在流程开始时启动,如果达到定时时间则从数据库获取补偿任务,如果存在补偿任务,则执行全流程补偿任务,即发起全流程重试,使得工作流引擎重新执行一次全流程。
结合图2所示的流程示意图,本申请实施例提供的工作流引擎的实现方法包括:
在流程开始时生成补偿任务并启动定时任务;
在流程结束时终止补偿任务;
在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
在一些可选的实施方式中,方法还包括:在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
在一些可选的实施方式中,方法还包括:在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
在一些可选的实施方式中,方法还包括:在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;
若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;
若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;
若获取的执行结果为处理中,则重试执行该节点。
参考图3,本申请实施例还提供一种工作流引擎的实现装置300。
如图3所示,本申请实施例工作流引擎的实现装置300包括:
补偿任务处理模块301,被配置成在流程开始时生成补偿任务,在流程结束时终止补偿任务;
定时任务处理模块302,被配置成在流程开始时启动定时任务,以及,在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
在一些可选的实施方式中,装置还包括:
自动审批处理模块303,被配置成在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
在一些可选的实施方式中,装置还包括:
第一异常处理模块304,被配置成在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
在一些可选的实施方式中,装置还包括:
第二异常处理模块(或称为幂等处理模块)305,被配置成在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;若获取的执行结果为处理中,则重试执行该节点。
以上,对本申请实施例提出的工作流引擎的实现方法和装置进行了详细说明。
本申请实施例具有以下优点:
优点一:从一个节点(例如填写审批信息)流转到下一个节点(例如主管审批),实现了自动审批,效率非常高。
优点二:通过设置异常处理步骤,可以有效防止长时间没有触发下一个节点(例如填写审批信息、主管审批、人事审批),工作流程一直在处理中的状态。
优点三:某个节点(例如填写审批信息、主管审批、人事审批)出现异常时,装置可以自动发起重试,人力成本低,整体耗时低。
优点四:某个节点(例如填写审批信息、主管审批、人事审批)执行异常,系统会自动发起重试,解决了工作流一直处于异常的状态的问题。
以上,本申请实施例通过设置补偿任务和定时任务,确保流程更顺畅执行,提高流程执行的效率;通过设置自动审批提高工作流运行效率;通过设置异常处理提高系统健壮性;通过幂等处理和全流程重试提高系统健壮性。
参考图4,本申请实施例还提供一种计算机设备500,包括:
一个或多个处理器501;
存储器502,其上存储有一个或多个程序503;
处理器501和存储器502等组件可通过总线系统504耦合在一起;总线系统504用于实现这些组件之间的连接通信;
当一个或多个程序503被一个或多个处理器501执行时,使得一个或多个处理器501实现如上文方法实施例中所公开的工作流引擎的实现方法。
其中,总线系统504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。处理器501可能是具有信号处理能力的集成电路芯片,可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被一个或多个处理器执行时实现如上文方法实施例中所公开的工作流引擎的实现方法。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应理解,本申请中术语“系统”和“网络”在本文中常被可互换使用。本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述,仅为本申请的较佳实施例,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种工作流引擎的实现方法,所述工作流引擎包括用于实现流程的多个节点,所述方法包括:
在流程开始时生成补偿任务并启动定时任务;
在流程结束时终止补偿任务;
在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
2.根据权利要求1所述的方法,还包括:
在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
3.根据权利要求1所述的方法,还包括:
在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
4.根据权利要求1所述的方法,在所述发起全流程重试之后,所述方法还包括:
在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;
若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;
若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;
若获取的执行结果为处理中,则重试执行该节点。
5.一种工作流引擎的实现装置,所述工作流引擎包括用于实现流程的多个节点,所述装置包括:
补偿任务处理模块,被配置成在流程开始时生成补偿任务,在流程结束时终止补偿任务;
定时任务处理模块,被配置成在流程开始时启动定时任务,以及,在定时任务达到定时时间时,若存在补偿任务,则发起全流程重试。
6.根据权利要求5所述的装置,还包括:
自动审批处理模块,被配置成在流程执行到任一节点时,确认是否满足该节点预先设置的自动审批条件,若满足,则确认该节点的执行结果为成功。
7.根据权利要求5所述的装置,还包括:
第一异常处理模块,被配置成在流程执行到任一节点时,若该节点发生异常,则按照预先设置的异常处理步骤暂停流程并向用户反馈异常。
8.根据权利要求5所述的装置,还包括:
第二异常处理模块,被配置成在新一轮流程执行到任一节点时,获取上一轮流程中该节点的执行结果;若获取的执行结果为成功,则跳过该节点,进入相应的下一节点;若获取的执行结果为失败,则跳过该节点,进入相应的下一节点;若获取的执行结果为处理中,则重试执行该节点。
9.一种计算机设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-4中任一所述的工作流引擎的实现方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现如权利要求1-4中任一所述的工作流引擎的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210331624.6A CN114663063A (zh) | 2022-03-30 | 2022-03-30 | 工作流引擎的实现方法、装置和设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210331624.6A CN114663063A (zh) | 2022-03-30 | 2022-03-30 | 工作流引擎的实现方法、装置和设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114663063A true CN114663063A (zh) | 2022-06-24 |
Family
ID=82032571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210331624.6A Pending CN114663063A (zh) | 2022-03-30 | 2022-03-30 | 工作流引擎的实现方法、装置和设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114663063A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667362A (zh) * | 2024-01-31 | 2024-03-08 | 上海朋熙半导体有限公司 | 一种流程引擎调度方法、系统、设备及可读介质 |
-
2022
- 2022-03-30 CN CN202210331624.6A patent/CN114663063A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667362A (zh) * | 2024-01-31 | 2024-03-08 | 上海朋熙半导体有限公司 | 一种流程引擎调度方法、系统、设备及可读介质 |
CN117667362B (zh) * | 2024-01-31 | 2024-04-30 | 上海朋熙半导体有限公司 | 一种流程引擎调度方法、系统、设备及可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804215B (zh) | 一种任务处理方法、装置以及电子设备 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN114663063A (zh) | 工作流引擎的实现方法、装置和设备及存储介质 | |
CN110611707A (zh) | 一种任务调度的方法及装置 | |
CN111459631A (zh) | 服务器自动化批处理方法及系统 | |
CN112256339B (zh) | 多进程管理方法、装置、电子设备和存储介质 | |
CN111324540A (zh) | 一种接口测试方法及装置 | |
CN113778771A (zh) | 一种终端测试的方法、系统及存储介质 | |
CN113127368A (zh) | 一种生成流水线的方法、系统和介质 | |
KR101252358B1 (ko) | Plc 명령어 테스트 장치 및 방법 | |
CN103631594A (zh) | 通用流程异步调度方法及系统 | |
CN112181695A (zh) | 异常应用处理方法、装置、服务器及存储介质 | |
CN110874713A (zh) | 业务状态管理方法与装置 | |
CN113810379B (zh) | 一种异常处理方法及多服务系统 | |
CN113568842B (zh) | 一种批量任务自动化测试方法及系统 | |
CN113342512A (zh) | 一种io任务静默与驱动方法、装置及相关设备 | |
CN112367205B (zh) | 一种对http调度请求的处理方法及调度系统 | |
CN115169915A (zh) | 工作流检测方法、系统及电子设备 | |
CN109921940B (zh) | 基于sdwan场景实现网络业务离线编排处理的系统及方法 | |
CN113590308A (zh) | 一种申请云资源的工作流处理方法、装置、设备及介质 | |
CN108804309B (zh) | 一种合同管理系统自动化测试方法及测试工具 | |
CN112799806A (zh) | 定时任务处理方法、装置、计算机设备及可读存储介质 | |
CN111177241A (zh) | 一种数据处理方法、装置、系统、电子设备及其存储介质 | |
JP2006302081A (ja) | サービス再開装置およびサービス再開プログラム | |
CN110705890A (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 |