CN106611297A - 工作流异常处理方法及系统 - Google Patents
工作流异常处理方法及系统 Download PDFInfo
- Publication number
- CN106611297A CN106611297A CN201510689837.6A CN201510689837A CN106611297A CN 106611297 A CN106611297 A CN 106611297A CN 201510689837 A CN201510689837 A CN 201510689837A CN 106611297 A CN106611297 A CN 106611297A
- Authority
- CN
- China
- Prior art keywords
- task
- workflow
- identifier
- backoff operation
- operation stream
- 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
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
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
本发明公开了一种工作流异常处理方法,该方法包括:依次执行工作流中的第一任务,且在执行第一任务之前,为该工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务,且若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。该方法还提供一种工作流异常处理方法。本发明能够有效的降低工作流异常时的处理复杂度,更容易实现。
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中工作流异常处理系统还包括的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种工作流异常处理方法,该方法中,工作流异常处理系统将依次执行工作流中的第一任务,且每次在执行第一任务之前,已为该工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务,且若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过设置工作流对应的回退工作流,且回退工作流中的第二任务为其在第一工作流中一一对应的第一任务的回退工作流,使得能够通过设置回退工作流的方式处理与其对应的工作流中任意任务执行时出现的异常,能够有效的降低工作流异常的处理复杂度,更容易实现。
优选的,本发明实施例提供的工作流异常处理方法及系统可优选使用在软件编程模型中,使得能够通过工作流的方式描述软件编码流程,并实现对其异常情况的快速处理。
请参阅图2,图2为本发明第一实施例中的工作流异常处理方法,该方法包括:
步骤201、依次执行工作流中的第一任务,且在执行第一任务之前,已为工作流对应的回退工作流中,与第一任务具有一一对应关系的第二任务设置任务标识符,其中,第二任务为第一任务的回退任务;
在本发明实施例中,工作流异常处理系统可以是工作流系统中的一部分,也可以是工作流系统,该工作流异常处理系统用于在工作流执行过程中出现异常时,对该异常情况进行处理。
在本发明实施例中,工作流异常处理系统(以下简称:系统)中预先已建立了待执行的工作流及该工作流对应的回退工作流,其中,该待执行的工作流及该工作流对应的回退工作流均是由编程人员通过编码的方式创建的。
请参阅图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中的工作流及图2中的回退工作流的表示方式为基于有向五环图的定点活动(Activity On Vertex,AOV)的工作流模型的表示为例的,在AOV图中,顶点是表示活动的,则在本发明实施例中,以AOV表示的工作流中活动则表示任务,有向边(箭头)表示任务执行的先后次序。
需要说明的是,在本发明实施例中,若工作流中的任务没必要设置回退任务,则在该工作流对应的回退工作流中,可设置与该工作流中的任务一一对应的回退任务为空,即在执行该回退工作流时,可以跳过不执行该任务,且继续执行下一个任务。例如:若图1所示的工作流中的任务4不产生临时文件,则其回退工作流中的任务-4为空。
在本发明实施例中,系统在添加工作流及其对应的回退工作流之后,将依次执行该工作流中的第一任务,且在执行该第一任务之前,已为该工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为该第一任务的回退任务。
其中,任务标识符是在执行工作流中的第一任务之前就对该第一任务对应的第二任务进行设置的,用于标识该第二任务对应的第一任务已经进入过执行状态,便于在执行该工作流的回退工作流时,通过回退工作流中的第二任务的任务标识符确定哪些第二任务需要执行。
其中,任务标识符的设置可以有很多种方式,例如,回退工作流中每一个任务都有一个状态位,回退工作流在未执行之前,其所有的任务的状态位均为暂停状态,在回退工作流中的第二任务对应的工作流中的第一任务执行之前,系统将该第二任务中暂停状态取消,使得其状态位为暂停状态取消状态,系统也可将该状态位所标识的不同状态作为任务标识符进行使用,当该第二任务的状态位为暂停状态取消状态时,确定该第二任务已设置任务标识符,当该第二任务的状态位为暂停状态时,确定该第二认为未设置任务标识符。例如,可以在第二任务设置比特信息位,若该比特信息位为0,则表示未设置任务标识符,若该比特信息位为1,则表示已经设置任务标识符。
其中,工作流中的任务均称为第一任务,其对应的回退工作流的任务均称为第二任务,其中,“第一任务”和“第二任务”中的“第一”和“第二”仅仅用于区别该两个任务是来自不同的工作流,并不对工作流中的任务本身造成限定。
步骤202、若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流的第二任务。
在本发明实施例中,若在执行工作流中的第一任务时出现异常,则系统将根据任务标识符依次执行回退工作流中的第二任务。
其中,执行工作流中的第一任务时出现异常可以是第一任务发出请求后在预置时间段内未收到响应,或者收到拒绝该请求的响应,或者收到请求错误的响应等等。
在本发明实施例中,系统在确定执行工作流中的第一任务时出现异常后,将停止执行工作流中的第一任务,且将启动该工作流对应的回退工作流的执行,使得系统根据任务标识符依次执行回退工作流中的第二任务。
在本发明实施例中,系统依次执行工作流中的第一任务,且在执行该第一任务之前,为工作流对应的回退工作流中,与该第一任务具有一一对应关系的第二任务设置任务标识符,其中,该第二任务为第一任务的回退任务,若在执行工作流中的第一任务时出现异常,则根据任务标识符依次执行回退工作流中的第二任务。通过上述的方式,为工作流建立与其对应的回退工作流,且在执行工作流的第一任务时,通过设置其在回退工作流中一一对应的第二任务的任务标识符,使得能够确定在回退工作流中有哪些第二任务是需要执行的,且在执行工作流中的第一任务出现异常时,根据任务标识符执行回退工作流,能够通过执行回退工作流的方式,实现对工作流的异常处理,且处理过程简单,能够有效降低工作流异常时的处理复杂度,且对于编程人员来说,能够通过更加简单的编程实现对工作流异常的处理,减轻编程人员的负担。
请参阅图4,为本发明图2所示的第一实施例中的步骤202中的执行回退工作流中的第二任务的细化流程示意图,该细化流程具体包括:
步骤401、判断第二任务是否包含任务标识符,若是,则执行步骤402,若否,则执行步骤403;
在本发明实施例中,系统在确定执行的工作流中的第一任务出现异常后,将停止该工作流中的任务的执行,且将启动该工作流对应的回退工作流的执行。
其中,系统在执行回退工作流时,也将从该回退工作流的初始的任务开始执行,并按照该回退工作流中的任务的执行方向依次执行任务。
在本发明实施例中,系统在执行到回退工作流中的每一个第二任务时,都将判断该第二任务是否包含任务标识符。
步骤402、执行第二任务;
在本发明实施例中,系统在判断待执行的第二任务是否包含任务标识符后,当确定该第二任务包含任务标识符时,将执行该第二任务。
其中,执行该第二任务具体可以是调用该第二任务的回退接口,并利用该回退接口运行第二任务的任务补偿代码,该任务补偿代码用于实现与该第二任务一一对应的第一任务的回退操作。
步骤403、跳过第二任务。
在本发明实施例中,当系统确定第二任务未包含任务标识符时,将跳过该第二任务,其中,跳过该第二任务,即是指不执行该第二任务,继续执行该第二任务的下一级任务。
需要说明的是,在本发明实施例中,编程人员在编写工作流的回退工作流时,将编写该回退工作流中的每一个第二任务的任务补偿代码,该任务补偿代码能够实现与该第二任务对应的任务的回退操作,例如,若第一任务为存储管理进程为虚拟机分配云硬盘,则该第一任务对应的第二任务的任务补偿代码能够实现的功能为存储管理进程清理已分配给待部署虚拟机的云硬盘。
需要说明的是,系统将按照步骤301至步骤303中描述的内容对回退工作流中的每一个第二任务都进行判断及处理。
在本发明实施例中,详细描述了基于任务标识符执行回退工作流的过程,使得在执行回退工作流中的第二任务时,能够仅仅执行已设置任务标识符的第二任务,且跳过未设置任务标识符的第二任务,能够有效的实现回退工作流的执行,且匹配该回退工作流对应的工作流的执行状态。
请参阅图5,为本发明第一实施例中的步骤201中的执行工作流中的第一任务之前的细化流程,该细化流程包括:
步骤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、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种工作流异常处理方法,其特征在于,包括:
依次执行工作流中的第一任务,且在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,其中,所述第二任务为所述第一任务的回退任务;
若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
2.根据权利要求1所述的方法,其特征在于,所述执行所述回退工作流中的第二任务,包括:
判断所述第二任务是否包含所述任务标识符;
当所述第二任务包含所述任务标识符时,执行所述第二任务;
当所述第二任务未包含所述任务标识符时,跳过所述第二任务。
3.根据权利要求2所述的方法,其特征在于,所述执行所述第二任务,包括:
调用所述第二任务的回退接口,并利用所述回退接口运行所述第二任务的任务补偿代码,所述任务补偿代码用于实现与所述第二任务一一对应的第一任务的回退操作。
4.根据权利要求1所述的方法,其特征在于,所述执行工作流中的第一任务之前还包括:
确定在所述回退工作流中与所述第一任务具有一一对应关系的第二任务;
为所述第二任务设置所述任务标识符。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若在执行所述工作流中的第一任务时出现异常,则停止执行所述工作流中的第一任务,启动所述回退工作流的执行。
6.一种工作流异常处理系统,其特征在于,包括:
任务执行模块,用于依次执行工作流中的第一任务,且在执行所述第一任务之前,已为所述工作流对应的回退工作流中,与所述第一任务具有一一对应关系的第二任务设置任务标识符,其中,所述第二任务为所述第一任务的回退任务;
回退执行模块,用于若在执行所述工作流中的第一任务时出现异常,则根据所述任务标识符依次执行所述回退工作流中的第二任务。
7.根据权利要求6所述的系统,其特征在于,所述回退执行模块包括:
判断模块,用于判断所述第二任务是否包含所述任务标识符;
第一执行模块,用于当所述第二任务包含所述任务标识符时,执行所述第二任务;
跳过模块,用于当所述第二任务未包含所述任务标识符时,跳过所述第二任务。
8.根据权利要求7所述的系统,其特征在于,所述第一执行模块用于:
当所述第二任务包含所述任务标识符时,调用所述第二任务的回退接口,并利用所述回退接口运行所述第二任务的任务补偿代码,所述任务补偿代码用于实现与所述第二任务一一对应的第一任务的回退操作。
9.根据权利要求6所述的系统,其特征在于,所述系统还包括:
确定模块,用于确定在所述回退工作流中与所述第一任务具有一一对应关系的第二任务;
标识符设置模块,用于为所述第二任务设置所述任务标识符。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括:
停止及启动模块,用于若在执行所述工作流中的第一任务时出现异常,则停止执行所述工作流中的第一任务,启动所述回退工作流的执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689837.6A CN106611297A (zh) | 2015-10-21 | 2015-10-21 | 工作流异常处理方法及系统 |
PCT/CN2016/101632 WO2017067392A1 (zh) | 2015-10-21 | 2016-10-10 | 工作流异常处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689837.6A CN106611297A (zh) | 2015-10-21 | 2015-10-21 | 工作流异常处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106611297A true CN106611297A (zh) | 2017-05-03 |
Family
ID=58556645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510689837.6A Pending CN106611297A (zh) | 2015-10-21 | 2015-10-21 | 工作流异常处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106611297A (zh) |
WO (1) | WO2017067392A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109670664A (zh) * | 2018-09-11 | 2019-04-23 | 深圳平安财富宝投资咨询有限公司 | 基于工作流的流程实施方法、用户设备、存储介质及装置 |
CN111080250A (zh) * | 2019-12-10 | 2020-04-28 | 东软集团股份有限公司 | 流程回退补偿方法、装置、存储介质及电子设备 |
CN112965850A (zh) * | 2021-03-23 | 2021-06-15 | 上海云轴信息科技有限公司 | 一种在中台系统中实现工作流的方法与设备 |
CN116051020A (zh) * | 2022-12-06 | 2023-05-02 | 广州明动软件股份有限公司 | 一种基于工作流引擎的流程疏导方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465466B (zh) * | 2020-12-10 | 2024-05-03 | 金蝶软件(中国)有限公司 | 流程任务执行方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
CN102929709A (zh) * | 2011-08-08 | 2013-02-13 | 阿里巴巴集团控股有限公司 | 任务流异常的处理方法及装置 |
WO2014201660A1 (zh) * | 2013-06-20 | 2014-12-24 | 博世尼克资讯股份有限公司 | 下载程序的方法 |
CN104881759A (zh) * | 2015-06-23 | 2015-09-02 | 四川久远银海软件股份有限公司 | 一种基于工作流的业务回退集成系统及其实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070239505A1 (en) * | 2006-03-30 | 2007-10-11 | Microsoft Corporation | Abstract execution model for a continuation-based meta-runtime |
EP2450793A1 (en) * | 2010-11-04 | 2012-05-09 | HTC Corporation | Method of defining state transitions in a software and application control management object |
JP6064734B2 (ja) * | 2013-03-27 | 2017-01-25 | 富士通株式会社 | ワークフロー制御プログラム、装置および方法 |
-
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615269A (zh) * | 2009-08-11 | 2009-12-30 | 用友软件股份有限公司 | 一种工作流管理系统中的回退方法和装置 |
CN102043682A (zh) * | 2011-01-27 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流异常处理方法和系统 |
CN102929709A (zh) * | 2011-08-08 | 2013-02-13 | 阿里巴巴集团控股有限公司 | 任务流异常的处理方法及装置 |
WO2014201660A1 (zh) * | 2013-06-20 | 2014-12-24 | 博世尼克资讯股份有限公司 | 下载程序的方法 |
CN104881759A (zh) * | 2015-06-23 | 2015-09-02 | 四川久远银海软件股份有限公司 | 一种基于工作流的业务回退集成系统及其实现方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109670664A (zh) * | 2018-09-11 | 2019-04-23 | 深圳平安财富宝投资咨询有限公司 | 基于工作流的流程实施方法、用户设备、存储介质及装置 |
CN111080250A (zh) * | 2019-12-10 | 2020-04-28 | 东软集团股份有限公司 | 流程回退补偿方法、装置、存储介质及电子设备 |
CN111080250B (zh) * | 2019-12-10 | 2023-04-18 | 东软集团股份有限公司 | 流程回退补偿方法、装置、存储介质及电子设备 |
CN112965850A (zh) * | 2021-03-23 | 2021-06-15 | 上海云轴信息科技有限公司 | 一种在中台系统中实现工作流的方法与设备 |
CN116051020A (zh) * | 2022-12-06 | 2023-05-02 | 广州明动软件股份有限公司 | 一种基于工作流引擎的流程疏导方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2017067392A1 (zh) | 2017-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106611297A (zh) | 工作流异常处理方法及系统 | |
CN107807815B (zh) | 分布式处理任务的方法和装置 | |
CN108491254A (zh) | 一种数据仓库的调度方法及装置 | |
CN101411123A (zh) | 用于分布式数据处理系统端点上的集中式系统管理的方法、系统和计算机程序 | |
CN105786691A (zh) | 一种移动终端自动化集成测试装置、方法和系统 | |
US11947996B2 (en) | Execution of services concurrently | |
CN104461743A (zh) | 资源和配置的自动生成装置和方法 | |
CN105653401A (zh) | 应用系统灾备、运维、监控和应急启停调度方法及装置 | |
CN105745585A (zh) | 卸载人机交互任务 | |
CN112150015A (zh) | 任务分配方法及装置 | |
US9380001B2 (en) | Deploying and modifying a service-oriented architecture deployment environment model | |
CN106874290B (zh) | 一种数据清洗方法及设备 | |
US10678749B2 (en) | Method and device for dispatching replication tasks in network storage device | |
US20090024424A1 (en) | System and method for dynamic linking of business processes | |
CN107025126B (zh) | 一种资源调度方法、nfvo和系统 | |
CN111913721B (zh) | 自动化部署方法、装置、设备及存储介质 | |
CN116400987B (zh) | 持续集成方法、装置、电子设备及存储介质 | |
CN109408104B (zh) | 一种获取游戏整合信息的方法及装置 | |
CN110795224A (zh) | 一种基于Ansible的自动化运维系统和方法 | |
CN112835692B (zh) | 一种日志消息驱动任务方法、系统、存储介质及设备 | |
CN116149808A (zh) | 机器人流程自动化管理系统和方法 | |
CN115525413A (zh) | 基于集群的模型训练方法、系统、设备、介质及产品 | |
CN115222363A (zh) | 可视化流程编排方法、可读存储介质及计算机设备 | |
CN114625664A (zh) | 一种自动化测试方法、装置、设备及存储介质 | |
CN104657168B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170503 |