WO2017067392A1 - 工作流异常处理方法及系统 - Google Patents
工作流异常处理方法及系统 Download PDFInfo
- Publication number
- WO2017067392A1 WO2017067392A1 PCT/CN2016/101632 CN2016101632W WO2017067392A1 WO 2017067392 A1 WO2017067392 A1 WO 2017067392A1 CN 2016101632 W CN2016101632 W CN 2016101632W WO 2017067392 A1 WO2017067392 A1 WO 2017067392A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- workflow
- fallback
- identifier
- execution
- Prior art date
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
-
- 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
Definitions
- a workflow includes a set of tasks (Tasks) and their mutual order relationship, as well as the start and end conditions of the process and tasks, and a description of each task.
- the network management process allocates network resources to the virtual machine
- the present disclosure also provides a non-transitory computer readable storage medium storing computer executable instructions for performing the workflow exception handling method described above.
- FIG. 1 is a schematic diagram of a workflow of a process of deploying a virtual machine
- the main process is managed to clean up the memory and release the physical resources occupied by the virtual machine to be deployed in the database.
- the system will sequentially execute the second task in the fallback workflow according to the task identifier.
- the task identifier of the task enabling determination of which second tasks in the fallback workflow are required to be executed, and executing a fallback workflow according to the task identifier when an exception occurs in the first task in the execution workflow
- the exception handling of the workflow is realized, and the processing procedure is simple, and the processing complexity when the workflow is abnormal can be effectively reduced, and for the programmer, the work can be realized by simpler programming.
- the handling of flow anomalies relieves the burden on programmers.
- FIG. 4 it is a schematic flowchart of a refinement of a second task in the execution of the rollback workflow in step 220 in the first embodiment shown in FIG. 2, where the refinement process may include:
- the system after determining whether the second task to be executed includes the task identifier, the system performs the second task when it is determined that the second task includes the task identifier.
- the performing the second task may be: calling a back-off interface of the second task, and using the back-off interface to run a task compensation code of the second task, where the task compensation code is used to implement one-to-one correspondence with the second task.
- the rollback operation of the first task may be: calling a back-off interface of the second task, and using the back-off interface to run a task compensation code of the second task, where the task compensation code is used to implement one-to-one correspondence with the second task.
- the programmer when writing a workflow backflow workflow, the programmer writes a task compensation code for each second task in the fallback workflow, and the task compensation code can be implemented.
- the first task is a storage management process for the virtual machine to allocate a cloud hard disk
- the task that the task compensation code of the second task corresponding to the first task can implement is a storage function. The management process cleans up the cloud disks that have been assigned to the virtual machines to be deployed.
- the refinement process before the first task in the execution workflow in step 210 in the first embodiment of the present disclosure includes:
- Step 501 Determine a second task that has a one-to-one correspondence with the first task in the fallback workflow.
- the content described in steps 501 to 502 is a process that needs to be performed before each first task is executed in the process of executing the workflow, and the system will be the initial one from the workflow.
- the content corresponding to step 501 to step 502 is performed before each execution of a first task.
- a second task having a one-to-one correspondence with the first task in the fallback workflow will be determined.
- Step 502 Set a task identifier of the second task.
- the executing the first task may be: calling a task interface of the first task, and using the task interface to run the task code of the first task, where the task code is used to implement the first task.
- the first task is: the network management process allocates network resources to the virtual machine
- the task code is a manner in which the network management process allocates network resources to the virtual machine by means of coding operation.
- the task identifier is set for the second task having the one-to-one correspondence in the fallback workflow for the first task before the first task in the workflow is executed, so that the workflow is executed in the workflow.
- the workflow can be executed based on the task identifier to implement fast processing of the abnormal situation, which can effectively reduce the complexity of the exception processing.
- writing a fallback workflow to handle exceptions it can effectively simplify the programming process and reduce the workload of programmers.
- the execution order of the workflow is Task 1, Task 2, and Task 3, and Task 4, and the execution sequence of the workflow of the workflow is Task-4, Task-2, Task-3, and Task-1.
- the task executed for the workflow and the task having a one-to-one correspondence in the fallback workflow are set.
- the task identifier can process the workflow exception based on the task identifier and the fallback workflow when the workflow execution exception occurs.
- the processing flow is simple, and for the programmer, only one corresponding backoff work is set. The flow can complete the processing of the abnormal situation of any task in the corresponding workflow.
- FIG. 6 is a functional module of a first embodiment of a workflow exception processing system, where the workflow exception processing system includes:
- the method further includes:
- the workflow exception processing system may be a part of the workflow system, or may be a workflow system, and the workflow exception processing system is configured to be abnormal when an abnormality occurs during the execution of the workflow. Process it.
- FIG. 1 is a schematic diagram of a workflow in an embodiment of the present disclosure, in which a number within a circle represents a task in a workflow, and an arrow direction represents an execution order of tasks in a workflow.
- the determining module 701 is configured to determine whether the second task includes a task identifier
- the present disclosure also provides a non-transitory computer readable storage medium storing computer executable instructions for performing the workflow exception handling method described above.
- the logic instructions in the memory 903 described above may be implemented in the form of a software functional unit and sold or used as a stand-alone product, and may be stored in a computer readable storage medium.
- the technical solution of the present disclosure may be embodied in the form of a software product stored in a storage medium, including a plurality of instructions for causing a computer device (which may be a personal computer, a server, or a network) The device or the like) performs all or part of the steps of the method described in various embodiments of the present disclosure.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种工作流异常处理方法及系统,所述方法包括:依次执行工作流中的第一任务,且在执行第一任务之前,为该工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务(210);且若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务(220)。所述方法能够有效的降低工作流异常时的处理复杂度。
Description
本公开涉及计算机技术领域,例如涉及一种工作流异常处理方法及系统。
工作流(Work Flow)是对工作流程及多个操作步骤之间业务规则的抽象、概括、描述。工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对工作流程中的工作实施计算。
其中,一个工作流包括一组任务(Task)及它们的相互顺序关系,还包括流程及任务的启动和终止条件,以及对每个任务的描述。
在云计算管理项目中,很多管理流程是管理进程之间通过消息方式交互的过程,比如管理主进程发送消息通知虚拟机管理进程将虚拟机开机,管理主进程收到消息后执行开机命令,然后给管理主进程发消息通知开机成功,该过程可以抽象为一个AB模型,场景可以是基于非可靠消息的分布式资源管理,其中,AB模型的定义为:AB之间采用非可靠消息交互,且A需要关注或管理B当下操作结果以实现资源管理,及关注操作的进度以实现状态管理。
目前,在云计算管理流程中很少是AB这种简单模型,一般都是包含很多个步骤,且每个步骤都是AB模型,如果要硬编码每一个步骤的消息处理流程,代码将非常复杂,为了实现管理流程抽象化,能够用一套代码来保证管理流程的执行,我们在云计算管理流程中引入工作流的概念。
请参阅图1,图1为部署虚拟机的流程的工作流,使用工作流来描述并执行这一流程,该工作流中包含4个任务:
1、管理主进程为虚拟机分配物理机;
2、存储管理进程为虚拟机分配云硬盘;
3、网络管理进程为虚拟机分配网络资源;
4、虚拟机管理进程创建虚拟机。
其中,以上4个任务运行在不同的管理节点即物理机上,每一个任务都是一个独立的消息单元。
在软件编码模型中,在用工作流来抽象编码上述的流程时,可大大简化复杂业务流程的实现,减少编码时的重复劳动。
然而,在云计算管理流程中引入工作流的概念之后,还需要考虑工作流中
的任务执行失败的情况,由于相关技术中的工作流的任务失败只能回退一个任务,使得并不适用于在云计算管理流程中的任务失败的情况,因为在云计算管理流程中,还需要考虑任务的失败处理相关关联的情况,及同一个任务,处于不同的流程中,或处于同一流程的不同位置,该任务失败处理都可能是不同的情况。因此,需要针对每一个任务出现执行失败的情况设置其失败处理的过程,将导致任务失败的处理过程非常复杂且难以实现。
上述内容仅用于辅助理解本公开的技术方案,并不代表承认上述内容是相关技术。
发明内容
本公开提供了一种工作流异常处理方法及系统,解决了在软件编码模型中使用工作流模型时,若工作流中的任务出现异常,将造成该异常的处理流程无比复杂的问题。
本公开提供的一种工作流异常处理方法,包括:
依次执行工作流中的第一任务,其中,在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,所述第二任务为所述第一任务的回退任务;以及
若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
本公开还提供了一种工作流异常处理系统包括:
任务执行模块,设置为依次执行工作流中的第一任务,其中,在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,所述第二任务为所述第一任务的回退任务;以及
回退执行模块,设置为若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
本公开还提供了一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述工作流异常处理方法。
本公开还提供一种工作流异常处理方法及系统,依次执行工作流中的第一任务,且在执行第一任务之前,为该工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的
回退任务,且若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过设置工作流对应的回退工作流,且回退工作流中的第二任务为在第一工作流中一一对应的第一任务的回退工作流,使得能够通过回退整个工作流的方式处理工作流中任意任务出现异常的问题,能够有效的降低工作流异常时的处理复杂度,更容易实现。
附图概述
图1为部署虚拟机的流程的工作流的示意图;
图2为本公开工作流异常处理方法第一实施例的流程示意图;
图3为本公开图1所示的工作流的回退工作流的示意图;
图4为图2中执行回退工作流的第二任务的步骤的细化流程示意图;
图5为图2中执行工作流中的第一任务步骤之前的流程的示意图;
图6为本公开工作流异常处理系统的第一实施例的功能模块示意图;
图7为本公开图6中的回退执行模块602的细化功能模块示意图;
图8为本公开图6中工作流异常处理系统还包括的功能模块示意图;
图9为本公开实施例提供的电子设备的结构框图。
本公开目的的实现、功能特点及优点将结合实施例,参照附图进行说明。
此处所描述的具体实施例仅仅用以解释本公开在不冲突的情况下,以下实施例和实施例中的特征可以相互组合。
本公开实施例提供一种工作流异常处理方法,该方法中,工作流异常处理系统将依次执行工作流中的第一任务,且每次在执行第一任务之前,已为该工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务,且若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过设置工作流对应的回退工作流,且回退工作流中的第二任务为在第一工作流中一一对应的第一任务的回退工作流,使得能够通过设置回退工作流的方式处理与所述第二任务对应的工作流中任意任务执行时出现的异常,能够有效的降低工作流异常的处理复杂度,更容易实现。
可选的,本公开实施例提供的工作流异常处理方法及系统可优选使用在软件编程模型中,使得能够通过工作流的方式描述软件编码流程,并实现对工作流中任意一个任务的异常情况的快速处理。
请参阅图2,图2为本公开第一实施例中的工作流异常处理方法,该方法包括:
步骤210、依次执行工作流中的第一任务,且在执行第一任务之前,已为工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务;
在本公开实施例中,工作流异常处理系统可以是工作流系统中的一部分,也可以是工作流系统,该工作流异常处理系统设置为在工作流执行过程中出现异常时,对该异常情况进行处理。
在本公开实施例中,工作流异常处理系统(以下简称:系统)中预先已建立了待执行的工作流及该工作流对应的回退工作流,其中,该待执行的工作流及该工作流对应的回退工作流均是由编程人员通过编码的方式创建的。
请参阅图1,为本公开实施例中工作流的示意图,其中,圆圈内的编号表示工作流中的任务,箭头方向表示工作流中的任务的执行顺序。
在本公开实施例中,编程人员创建工作流和该回退工作流的过程可以为:先创建工作流,并针对该工作流中的每一个任务设置对应的回退任务,并将设置的回退任务按照该任务在工作流中的对应的任务执行的方向的相反方向设置顺序关系,得到该工作流的回退工作流。因此,工作流中的任务与所述工作流中的任务对应的回退工作流中的任务具有一一对应关系,且回退工作流中的任务为在工作流中一一对应的任务的回退任务。
为了便于理解,请参阅图3,为图1所示的工作流的回退工作流,其中,回退工作流的任务可以用负号进行编号,可以是:
-1、管理主进程清理内存,释放数据库中待部署虚拟机占用的物理资源;
-2、存储管理进程清理已分配给待部署虚拟机的物理资源;
-3、网络管理进程清理已分配给待部署虚拟机的网络资源;
-4、虚拟机管理进程释放对存储资源和网络资源的占用,清理内存,抹除临时文件等等。
其中,任务-1为图1所示的任务1的回退过程,任务-2为图1所示的任务2的回退过程,任务-3为图1所示的任务3的回退过程,任务-4为图1所示的任
务4的回退过程。且图1所示的工作流中的任务依次执行的方向为箭头所指的方向,即1<2,3<4,其对应的回退工作流中的任务的执行方向也为箭头所指的方向,即-4<-3,-2<-1。
需要说明的是,图1中的工作流及图3中的回退工作流的表示方式为基于有向五环图的定点活动(Activity On Vertex,AOV)的工作流模型的表示为例的,在AOV图中,顶点是表示活动的,则在本公开实施例中,以AOV表示的工作流中,活动表示任务,有向边(即带箭头的线)表示任务执行的先后次序。
需要说明的是,在本公开实施例中,若工作流中的任务没必要设置回退任务,则在该工作流对应的回退工作流中,可设置与该工作流中的任务一一对应的回退任务为空,即在执行该回退工作流时,可以跳过不执行该任务,且继续执行下一个任务。例如:若图1所示的工作流中的任务4不产生临时文件,则回退工作流中的任务-4为空。
在本公开实施例中,系统在添加工作流及与工作流对应的回退工作流之后,将依次执行该工作流中的第一任务,且在执行该第一任务之前,已为该工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为该第一任务的回退任务。
其中,任务标识符是在执行工作流中的第一任务之前就对该第一任务对应的第二任务进行设置的,设置为标识该第二任务对应的第一任务已经进入过执行状态,便于在执行该工作流的回退工作流时,通过回退工作流中的第二任务的任务标识符确定哪些第二任务需要执行。
其中,任务标识符的设置可以有很多种方式,例如,回退工作流中每一个任务都有一个状态位,回退工作流在未执行之前,所有的任务的状态位均为暂停状态,在回退工作流中的第二任务对应的工作流中的第一任务执行之前,系统将该第二任务中暂停状态取消,使得第二任务的状态位为暂停状态取消状态,系统也可将该状态位所标识的不同状态作为任务标识符进行使用,当该第二任务的状态位为暂停状态取消状态时,确定该第二任务已设置任务标识符,当该第二任务的状态位为暂停状态时,确定该第二认为未设置任务标识符。例如,可以在第二任务设置比特信息位,若该比特信息位为0,则表示未设置任务标识符,若该比特信息位为1,则表示已经设置任务标识符。
其中,工作流中的任务均称为第一任务,该第一任务对应的回退工作流的任务均称为第二任务,其中,“第一任务”和“第二任务”中的“第一”和“第二”仅仅
用于区别该两个任务是来自不同的工作流,并不对工作流中的任务本身造成限定。
步骤220、若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流的第二任务。
在本公开实施例中,若在执行工作流中的第一任务时出现异常,则系统将根据任务标识符依次执行回退工作流中的第二任务。
其中,执行工作流中的第一任务时出现异常可以是第一任务发出请求后在预置时间段内未收到响应,或者收到拒绝该请求的响应,或者收到请求错误的响应等等。
在本公开实施例中,系统在确定执行工作流中的第一任务时出现异常后,将停止执行工作流中的第一任务,且将启动该工作流对应的回退工作流的执行,使得系统根据任务标识符依次执行回退工作流中的第二任务。
在本公开实施例中,系统依次执行工作流中的第一任务,且在执行该第一任务之前,为工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为第一任务的回退任务,若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过上述的方式,为工作流建立与该工作流对应的回退工作流,且在执行工作流的第一任务时,通过设置所述第一任务在回退工作流中一一对应的第二任务的任务标识符,使得能够确定在回退工作流中有哪些第二任务是需要执行的,且在执行工作流中的第一任务出现异常时,根据任务标识符执行回退工作流,能够通过执行回退工作流的方式,实现对工作流的异常处理,且处理过程简单,能够有效降低工作流异常时的处理复杂度,且对于编程人员来说,能够通过更加简单的编程实现对工作流异常的处理,减轻编程人员的负担。
请参阅图4,为本公开图2所示的第一实施例中的步骤220中的执行回退工作流中的第二任务的细化流程示意图,该细化流程可以是包括:
步骤401、判断第二任务是否包含任务标识符,若第二任务包含任务标识符,则执行步骤402,若第二任务不包含任务标识符,则执行步骤403;
在本公开实施例中,系统在确定执行的工作流中的第一任务出现异常后,将停止该工作流中的任务的执行,且将启动该工作流对应的回退工作流的执行。
其中,系统在执行回退工作流时,也将从该回退工作流的初始的任务开始执行,并按照该回退工作流中的任务的执行方向依次执行任务。
在本公开实施例中,系统在执行到回退工作流中的每一个第二任务时,都将判断该第二任务是否包含任务标识符。
步骤402、执行第二任务;
在本公开实施例中,系统在判断待执行的第二任务是否包含任务标识符后,当确定该第二任务包含任务标识符时,将执行该第二任务。
其中,执行该第二任务可以是调用该第二任务的回退接口,并利用该回退接口运行第二任务的任务补偿代码,该任务补偿代码用于实现与该第二任务一一对应的第一任务的回退操作。
步骤403、跳过第二任务。
在本公开实施例中,当系统确定第二任务未包含任务标识符时,将跳过该第二任务,其中,跳过该第二任务,即是指不执行该第二任务,继续执行该第二任务的下一级任务。
需要说明的是,在本公开实施例中,编程人员在编写工作流的回退工作流时,将编写该回退工作流中的每一个第二任务的任务补偿代码,该任务补偿代码能够实现与该第二任务对应的任务的回退操作,例如,若第一任务为存储管理进程为虚拟机分配云硬盘,则该第一任务对应的第二任务的任务补偿代码能够实现的功能为存储管理进程清理已分配给待部署虚拟机的云硬盘。
需要说明的是,系统将按照步骤301至步骤303中描述的内容对回退工作流中的每一个第二任务都进行判断及处理。
在本公开实施例中,详细描述了基于任务标识符执行回退工作流的过程,使得在执行回退工作流中的第二任务时,能够仅仅执行已设置任务标识符的第二任务,且跳过未设置任务标识符的第二任务,能够有效的实现回退工作流的执行,且匹配该回退工作流对应的工作流的执行状态。
请参阅图5,为本公开第一实施例中的步骤210中的执行工作流中的第一任务之前的细化流程,该细化流程包括:
步骤501、确定在回退工作流中与第一任务具有一一对应关系的第二任务;
在本公开实施例中,步骤501至步骤502中描述的内容是在执行工作流的过程中,对每一个第一任务执行之前都需要执行的过程,且系统将从工作流中的初始的第一任务开始,依照工作流中的第一任务的执行的先后顺序,在每次执行一个第一任务之前执行步骤501至步骤502对应的内容。
在本公开实施例中,系统需要对工作流中的一个第一任务进行执行之前,
将确定在回退工作流中与该第一任务具有一一对应关系的第二任务。
步骤502、设置第二任务的任务标识符。
在本公开实施例中,系统在确定与第一任务具有一一对应关系的第二任务之后,将为该第二任务设置任务标识符。
在本公开实施例中,系统在为第一任务具有一一对应关系的第二任务设置任务标识符之后,将执行该第一任务。
可选的,执行该第一任务可以为:调用该第一任务的任务接口,利用该任务接口运行该第一任务的任务代码,其中,该任务代码用于实现该第一任务。例如,若该第一任务为:网络管理进程为虚拟机分配网络资源,则该任务代码即为通过编码运行的方式实现网络管理进程为虚拟机分配网络资源的目的。
在本公开实施例中,通过在执行工作流中的第一任务之前,为该第一任务在回退工作流中具有一一对应关系的第二任务设置任务标识符,使得在该工作流执行出现异常时,能够基于任务标识符执行回退工作流,以实现对异常情况的快速处理,能够有效降低异常处理的复杂度。且通过编写回退工作流的方式处理异常情况,能够有效简化编程流程,减少编程人员的工作量。
为了更好的理解本公开实施例中的技术方案,下面将介绍应用场景:
以图1所示的工作流及图3所示的回退工作流为例,其中,图3所示的回退工作流为图1所示的工作流的回退工作流。
其中,工作流的执行顺序为任务1、任务2和任务3、任务4,所述工作流的回退工作流的执行顺序为任务-4、任务-2和任务-3、任务-1。
依次执行工作流中的任务,在执行任务1之前,为所述回退工作流中具有一一对应关系的任务-1设置任务标识符,接着执行任务1,若任务1执行成功,接着,在执行任务2和任务3之前,为所述回退工作流中具有一一对应关系的任务-2和-3设置任务标识符,同时执行任务2和任务3,若任务2和任务3执行成功,接着,在执行任务4之前,为所述回退工作流中的任务-4设置任务标识符,执行任务4,若任务4执行出现异常,则停止工作流的执行,并启动器回退工作流。
系统确定任务-4具有任务标识符,则执行任务-4,接着系统判断任务-2和-3是否包含任务标识符,且确定任务-2和任务-3具有任务标识符,则执行任务-2和-3,且系统确定任务-1具有任务标识符,则执行任务-1,以完成对工作流执行异常的处理。
在本公开实施例中,通过设置与工作流对应的回退工作流,且在执行工作流的过程中,为所述工作流执行的任务与回退工作流中具有一一对应关系的任务设置任务标识符,在工作流执行出现异常时,基于任务标识符及回退工作流即可以完成对工作流异常的处理,处理流程简单,且对于编程人员来说,仅仅设置一个对应的回退工作流就可以完成对应的工作流中任意一个任务的异常情况的处理。
请参阅图6,为本公开一种工作流异常处理系统的第一实施例的功能模块,该工作流异常处理系统包括:
任务执行模块601,设置为依次执行工作流中的第一任务,且在执行该第一任务之前,已为该工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为该第一任务的回退任务;
回退执行模块602,设置为若在执行该工作流中的第一任务时出现异常,则根据该任务标识符依次执行该回退工作流中的第二任务。
此外,在回退执行模块602之前,还包括:
停止及启动模块603,设置为若在执行该工作流中的第一任务时出现异常,则停止执行该工作流中的第一任务,启动该回退工作流的执行。
在本公开实施例中,工作流异常处理系统可以是工作流系统中的一部分,也可以是工作流系统,该工作流异常处理系统设置为在工作流执行过程中出现异常时,对该异常情况进行处理。
在本公开实施例中,工作流异常处理系统(以下简称:系统)中预先已建立了待执行的工作流及该工作流对应的回退工作流,其中,该待执行的工作流及该工作流对应的回退工作流均是由编程人员通过编码的方式创建的。
请参阅图1,为本公开实施例中工作流的示意图,其中,圆圈内的编号表示工作流中的任务,箭头方向表示工作流中的任务的执行顺序。
在本公开实施例中,编程人员创建工作流和该回退工作流的过程可以为:先创建工作流,并针对该工作流中的每一个任务设置该任务对应的回退任务,并将设置的回退任务按照在工作流中的对应的任务执行的方向的相反方向设置顺序关系,得到该工作流的回退工作流。因此,工作流中的任务与对应的回退工作流中的任务具有一一对应关系,且回退工作流中的任务为在工作流中一一对应的任务的回退任务。
其中,任务标识符是在执行工作流中的第一任务之前就对该第一任务对应
的第二任务进行设置的,设置为标识该第二任务对应的第一任务已经进入过执行状态,便于在执行该工作流的回退工作流时,通过回退工作流中的第二任务的任务标识符确定哪些第二任务需要执行。
其中,任务标识符的设置可以有很多种方式,例如,回退工作流中每一个任务都有一个状态位,回退工作流在未执行之前,所有的任务的状态位均为暂停状态,在回退工作流中的第二任务对应的工作流中的第一任务执行之前,系统将该第二任务中暂停状态取消,使得第二任务的状态位为暂停状态取消状态,系统也可将该状态位所标识的不同状态作为任务标识符进行使用,当该第二任务的状态位为暂停状态取消状态时,确定该第二任务已设置任务标识符,当该第二任务的状态位为暂停状态时,确定该第二认为未设置任务标识符。例如,可以在第二任务设置比特信息位,若该比特信息位为0,则表示未设置任务标识符,若该比特信息位为1,则表示已经设置任务标识符。
在本公开实施例中,系统中的任务执行模块601依次执行工作流中的第一任务,且在执行该第一任务之前,已为该工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为该第一任务的回退任务;若在执行该工作流中的第一任务时出现异常,则停止及启动模块603停止执行该工作流中的第一任务,启动该回退工作流的执行,并由回退执行模块602根据该任务标识符依次执行该回退工作流中的第二任务。
在本公开实施例中,系统依次执行工作流中的第一任务,且在执行该第一任务之前,为工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为第一任务的回退任务,若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过上述的方式,为工作流建立与该工作流对应的回退工作流,且在执行工作流的第一任务时,通过所述第一任务在回退工作流中一一对应的第二任务的任务标识符,使得能够确定在回退工作流中有哪些第二任务是需要执行的,且在执行工作流中的第一任务出现异常时,根据任务标识符执行回退工作流,能够通过执行回退工作流的方式,实现对工作流的异常处理,且处理过程简单,能够有效降低工作流异常时的处理复杂度,且对于编程人员来说,能够通过更加简单的编程实现对工作流异常的处理,减轻编程人员的负担。
请参阅图7,为本公开图6所示的第一实施例中的回退执行模块602的细化功能模块,若在执行工作流中的第一任务时出现异常,则对于回退工作流中的
每一个第二任务,该回退执行模块602包括:
判断模块701,设置为判断该第二任务是否包含任务标识符;
第一执行模块702,设置为当该第二任务包含该任务标识符时,执行该第二任务;
跳过模块703,设置为当该第二任务未包含该任务标识符时,跳过该第二任务。
在本公开实施例中,该第一执行模块702设置为:
当该第二任务包含该任务标识符时,调用该第二任务的回退接口,并利用该回退接口运行该第二任务的任务补偿代码,该任务补偿代码用于实现与该第二任务一一对应的第一任务的回退操作。
在本公开实施例中,在执行回退工作流时,将对回退工作流中的每一个第二任务都执行以下过程,包括:由判断模块701判断该第二任务是否包含该任务标识符,当判断模块701确定该第二任务包含该任务标识符时,第一执行模块702执行该第二任务,当判断模块703确定该第二任务未包含该任务标识符时,跳过模块703跳过该第二任务。
在本公开实施例中,详细描述了基于任务标识符执行回退工作流的过程,使得在执行回退工作流中的第二任务时,能够仅仅执行已设置任务标识符的第二任务,且跳过未设置任务标识符的第二任务,能够有效的实现回退工作流的执行,且匹配该回退工作流对应的工作流的执行状态。
请参与图8,为本公开图6所示实施例中的工作流异常处理系统还包括的功能模块的实施例,该系统还包括:
确定模块801,设置为确定在回退工作流中与该第一任务具有一一对应关系的第二任务;
标识符设置模块802,设置为为该第二任务设置任务标识符。
需要说明的是,在本公开实施例中,系统在执行每一个工作流中的第一任务之前,都将对该第一任务按照确定模块801和标识符设置模块802所描述的内容进行任务标识符的设置。
在本公开实施例中,系统将对工作流中的每一个第一任务按照如下过程设置任务标识符:确定模块801确定在回退工作流中与该第一任务具有一一对应关系的第二任务,标识符设置模块802为该第二任务设置任务标识符。且在设置任务标识符之后,系统将执行该第一任务。
在本公开实施例中,通过在执行工作流中的第一任务之前,为该第一任务在回退工作流中具有一一对应关系的第二任务设置任务标识符,使得在该工作流执行出现异常时,能够基于任务标识符执行回退工作流,以实现对异常情况的快速处理,能够有效降低异常处理的复杂度。且通过编写回退工作流的方式处理异常情况,能够有效简化编程流程,减少编程人员的工作量。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开实施例的方法。
本公开还提供了一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述工作流异常处理方法。
图9为本公开实施例提供的电子设备的结构框图。本公开实施例提供的电子设备可以是包括:处理器(processor)901和存储器(memory)903,还可以包括通信接口(Communications Interface、)902和总线904。其中,处理器901、通信接口902、存储器903可以通过总线904完成相互间的通信。通信接口902可以设置为信息传输。处理器901可以调用存储器903中的逻辑指令,以执行上述实施例的工作流异常处理方法。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开多个实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
本公开实施例使得能够通过回退整个工作流的方式处理工作流中任意任务出现异常的问题,能够有效的降低工作流异常时的处理复杂度,更容易实现。
Claims (11)
- 一种工作流异常处理方法,包括:依次执行工作流中的第一任务,其中,在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,所述第二任务为所述第一任务的回退任务;以及若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
- 根据权利要求1所述的方法,其中,所述执行所述回退工作流中的第二任务,包括:判断所述第二任务是否包含所述任务标识符;当所述第二任务包含所述任务标识符时,执行所述第二任务;当所述第二任务未包含所述任务标识符时,跳过所述第二任务。
- 根据权利要求2所述的方法,其中,所述执行所述第二任务,包括:调用所述第二任务的回退接口,并利用所述回退接口运行所述第二任务的任务补偿代码,所述任务补偿代码用于实现与所述第二任务一一对应的第一任务的回退操作。
- 根据权利要求1所述的方法,其中,所述执行工作流中的第一任务之前还包括:确定在所述回退工作流中与所述第一任务具有一一对应关系的第二任务;为所述第二任务设置所述任务标识符。
- 根据权利要求1所述的方法,还包括:若在执行所述工作流中的第一任务时出现异常,则停止执行所述工作流中的第一任务,启动所述回退工作流的执行。
- 一种工作流异常处理系统,包括:任务执行模块,设置为依次执行工作流中的第一任务,其中,在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,所述第二任务为所述第一任务的回退任务;以及回退执行模块,设置为若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
- 根据权利要求6所述的系统,其中,所述回退执行模块包括:判断模块,设置为判断所述第二任务是否包含所述任务标识符;第一执行模块,设置为当所述第二任务包含所述任务标识符时,执行所述第二任务;跳过模块,设置为当所述第二任务未包含所述任务标识符时,跳过所述第二任务。
- 根据权利要求7所述的系统,其中,所述第一执行模块设置为:当所述第二任务包含所述任务标识符时,调用所述第二任务的回退接口,并利用所述回退接口运行所述第二任务的任务补偿代码,所述任务补偿代码用于实现与所述第二任务一一对应的第一任务的回退操作。
- 根据权利要求6所述的系统,还包括:确定模块,设置为确定在所述回退工作流中与所述第一任务具有一一对应关系的第二任务;标识符设置模块,设置为为所述第二任务设置所述任务标识符。
- 根据权利要求6所述的系统,还包括:停止及启动模块,设置为若在执行所述工作流中的第一任务时出现异常,则停止执行所述工作流中的第一任务,启动所述回退工作流的执行。
- 一种非暂态计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-5任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689837.6A CN106611297A (zh) | 2015-10-21 | 2015-10-21 | 工作流异常处理方法及系统 |
CN201510689837.6 | 2015-10-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017067392A1 true WO2017067392A1 (zh) | 2017-04-27 |
Family
ID=58556645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/101632 WO2017067392A1 (zh) | 2015-10-21 | 2016-10-10 | 工作流异常处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106611297A (zh) |
WO (1) | WO2017067392A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465466A (zh) * | 2020-12-10 | 2021-03-09 | 金蝶软件(中国)有限公司 | 流程任务执行方法、装置、计算机设备和存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109670664A (zh) * | 2018-09-11 | 2019-04-23 | 深圳平安财富宝投资咨询有限公司 | 基于工作流的流程实施方法、用户设备、存储介质及装置 |
CN111080250B (zh) * | 2019-12-10 | 2023-04-18 | 东软集团股份有限公司 | 流程回退补偿方法、装置、存储介质及电子设备 |
CN112965850A (zh) * | 2021-03-23 | 2021-06-15 | 上海云轴信息科技有限公司 | 一种在中台系统中实现工作流的方法与设备 |
CN116051020A (zh) * | 2022-12-06 | 2023-05-02 | 广州明动软件股份有限公司 | 一种基于工作流引擎的流程疏导方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101416214A (zh) * | 2006-03-30 | 2009-04-22 | 微软公司 | 用于基于延续的元运行时环境的抽象执行模型 |
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
CN103077078A (zh) * | 2010-11-04 | 2013-05-01 | 宏达国际电子股份有限公司 | 定义在软件及应用控制管理对象中状态转换的方法 |
US20140297355A1 (en) * | 2013-03-27 | 2014-10-02 | Fujitsu Limited | Workflow control apparatus and method therefor |
CN104881759A (zh) * | 2015-06-23 | 2015-09-02 | 四川久远银海软件股份有限公司 | 一种基于工作流的业务回退集成系统及其实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929709A (zh) * | 2011-08-08 | 2013-02-13 | 阿里巴巴集团控股有限公司 | 任务流异常的处理方法及装置 |
SG11201510502TA (en) * | 2013-06-20 | 2016-01-28 | Bothnic Information Co Ltd | Method for downloading application |
-
2015
- 2015-10-21 CN CN201510689837.6A patent/CN106611297A/zh active Pending
-
2016
- 2016-10-10 WO PCT/CN2016/101632 patent/WO2017067392A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101416214A (zh) * | 2006-03-30 | 2009-04-22 | 微软公司 | 用于基于延续的元运行时环境的抽象执行模型 |
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
CN103077078A (zh) * | 2010-11-04 | 2013-05-01 | 宏达国际电子股份有限公司 | 定义在软件及应用控制管理对象中状态转换的方法 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
US20140297355A1 (en) * | 2013-03-27 | 2014-10-02 | Fujitsu Limited | Workflow control apparatus and method therefor |
CN104881759A (zh) * | 2015-06-23 | 2015-09-02 | 四川久远银海软件股份有限公司 | 一种基于工作流的业务回退集成系统及其实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465466A (zh) * | 2020-12-10 | 2021-03-09 | 金蝶软件(中国)有限公司 | 流程任务执行方法、装置、计算机设备和存储介质 |
CN112465466B (zh) * | 2020-12-10 | 2024-05-03 | 金蝶软件(中国)有限公司 | 流程任务执行方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106611297A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017067392A1 (zh) | 工作流异常处理方法及系统 | |
JP6499986B2 (ja) | フォールトトレラントバッチ処理 | |
KR102072726B1 (ko) | 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들 | |
US20180218058A1 (en) | Data synchronization method and system | |
WO2015131542A1 (zh) | 数据处理方法、装置和系统 | |
CN113094125B (zh) | 业务流程处理方法、装置、服务器及存储介质 | |
CN109478148A (zh) | 基于工作流程的对象析构 | |
CN112256776A (zh) | 表单重复提交检测方法、装置、计算机设备和存储介质 | |
CN104484132B (zh) | 数据缩减的方法及装置 | |
CN106874020B (zh) | 启动插件的方法及装置 | |
WO2024113836A1 (zh) | 一种资源的分配方法、装置和一种人工智能训练系统 | |
JP7305898B2 (ja) | 操作応答方法、操作応答装置、電子機器及び記憶媒体 | |
CN111031123B (zh) | Spark任务的提交方法、系统、客户端及服务端 | |
CN112732367A (zh) | 事件流程的处理方法、装置、设备及可读存储介质 | |
WO2020211358A1 (zh) | 数据库调度方法、装置、计算机设备及存储介质 | |
CN111143041A (zh) | 一种数据一致性方法、分布式协调器及中央协调器 | |
CN112445602A (zh) | 资源调度方法、装置、系统及电子设备 | |
CN109213586A (zh) | 一种任务的调度方法及装置 | |
CN110417899B (zh) | 主机与平台服务器的通讯方法及系统 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN106055322A (zh) | 一种流程调度方法及装置 | |
CN112199168A (zh) | 任务处理方法、装置及系统和任务状态交互方法 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
JP7545072B2 (ja) | 情報管理装置、情報管理方法、およびプログラム | |
CN104572036A (zh) | 事件的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16856825 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16856825 Country of ref document: EP Kind code of ref document: A1 |