CN109978482A - 工作流处理方法、装置、设备及存储介质 - Google Patents

工作流处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN109978482A
CN109978482A CN201711450041.0A CN201711450041A CN109978482A CN 109978482 A CN109978482 A CN 109978482A CN 201711450041 A CN201711450041 A CN 201711450041A CN 109978482 A CN109978482 A CN 109978482A
Authority
CN
China
Prior art keywords
task
workflow
instruction
current
management platform
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
Application number
CN201711450041.0A
Other languages
English (en)
Inventor
李喜明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711450041.0A priority Critical patent/CN109978482A/zh
Publication of CN109978482A publication Critical patent/CN109978482A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Abstract

本公开提供了一种工作流处理方法、装置、设备及存储介质,属于计算机应用技术领域。方法包括:向任务节点发送任务启动指令,该任务启动指令携带工作流中的当前任务,且用于指示该任务节点执行该当前任务;当该当前任务为阻塞任务时,将该工作流的流程实例进入休眠状态;接收该任务节点发送的任务完成指令,该任务完成指令至少携带该工作流的流程实例标识,且该任务完成指令为该任务节点执行完该当前任务时发送的;根据该任务完成指令,唤醒该工作流的流程实例。由于在任务节点执行当前任务时,管理平台将工作流的流程实例进入休眠状态,任务节点执行完当前任务时,管理平台将该流程实例唤醒,从而降低了管理平台的性能压力并提高了响应的及时性。

Description

工作流处理方法、装置、设备及存储介质
技术领域
本公开涉及计算机应用技术领域,特别涉及一种工作流处理方法、装置、设备及存储介质。
背景技术
工作流技术已广泛应用在企业信息化的各个领域,越来越多的企业应用系统已经把工作流作为基础平台,处理内部办公、政务或者企业的业务流程。同时随着物联网技术的不断发展,对物联网设备的处理也可以串接到工作流中,以完成一个完整的工作流的流程实例。因此,一个工作流中包括多个任务,而企业应用系统中包括多个任务节点,一个任务节点用于处理一个任务;并且,一般情况下,上一个任务节点处理完一个任务之后,下一个任务节点才能处理下一个任务。
当执行到当前任务,且当前任务为阻塞任务时,管理平台通知处理该当前任务的任务节点启动该当前任务,并将该工作流的流程实例挂起,将该工作流的会话信息存储到数据库中。管理平台周期性将流程实例唤醒,并从数据库中读取该工作流的会话信息,基于该会话信息查询该当前任务的执行程度。当该当前任务未执行完时,管理平台再次将该工作流的流程实例挂起,将该工作流的会话信息存储到数据库中,直到查询到该当前任务已完成,才进入下一个任务。
在实现本公开的过程中,发明人发现现有技术至少存在以下问题:
当该当前任务需要长时间处理时,管理平台就需要周期将该流程实例唤醒,并周期性查询该当前任务的执行程度,对管理平台造成比较大的性能压力。并且,由于管理平台采用的是周期性轮询的方式去监控该当前任务的完成情况,任务完成之后需要等待下一个查询周期到来才能得到反馈,从而导致响应的及时性差。
发明内容
本公开实施例提供了一种工作流处理方法、装置、设备及存储介质,可以解决管理平台性能压力大以及响应的及时性差的问题。所述技术方案如下:
第一方面,本公开实施例提供了一种工作流处理方法,所述方法应用在管理平台中,所述方法包括:
向任务节点发送任务启动指令,所述任务启动指令携带工作流中的当前任务,且用于指示所述任务节点执行所述当前任务;
当所述当前任务为阻塞任务时,将所述工作流的流程实例进入休眠状态;
接收所述任务节点发送的任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令为所述任务节点执行完所述当前任务时发送的;
根据所述任务完成指令,唤醒所述工作流的流程实例。
在本公开实施例中,在当前任务是阻塞任务时,管理平台通知任务节点启动该当前任务后,将工作流的流程实例进入休眠状态;任务节点执行完当前任务时,通知管理平台将该流程实例唤醒,并继续执行该工作流,以达到当前任务的协同处理。由于在任务节点执行当前任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。并且,任务节点执行完当前任务时,会通知管理平台将该流程实例唤醒,从而提高了响应的及时性。
在一个可能的实现方式中,所述将所述工作流的流程实例进入休眠状态之后,所述方法还包括:
将所述工作流的会话信息存储到数据库中;
相应的,所述根据所述任务完成指令,唤醒所述工作流的流程实例之后,所述方法还包括:
根据所述流程实例标识,从所述数据库中读取所述工作流的会话信息,根据所述会话信息,继续处理所述工作流。
在本公开实施例中,管理平台将工作流的会话信息存储到数据库中,从而进一步降低了管理平台的性能压力。
在另一个可能的实现方式中,所述任务完成指令还携带所述当前任务的执行结果和所述当前任务的任务标识;所述根据所述会话信息,继续处理所述工作流,包括:
根据所述执行结果和所述任务标识,从所述会话信息中确定所述工作流的任务序列中所述当前任务的下一个任务;
基于所述会话信息执行所述下一个任务。
在本公开实施例中,当工作流中的多个任务均为阻塞任务,且当前正在执行多个任务时,任务节点返回的任务完成指令携带当前任务的执行结果和当前任务的任务标识。管理平台可以根据当前任务的任务标识,确定从哪个节点来继续工作流的处理,从而提高了处理的准确性。
在另一个可能的实现方式中,所述方法还包括:
统计所述任务节点执行所述当前任务的处理时长;
确定所述当前任务的老化时长;
当所述处理时长超过所述老化时长时,根据所述工作流的流程实例标识,结束所述工作流中的所述当前任务。
在本公开实施例中,管理平台在任务节点执行当前任务的处理时长超过老化时长时,强制结束当前任务,避免了当前任务的执行时长过长。
在另一个可能的实现方式中,所述方法还包括:
获取所述当前任务的任务类型;当所述任务类型为阻塞任务的任务类型时,确定所述当前任务为阻塞任务;或者,
向所述任务节点发送任务启动指令之后的指定响应时长内没有接收到所述任务完成指令时,确定所述当前任务为阻塞任务。
在另一个可能的实现方式中,所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识;
所述接收所述任务节点发送的任务完成指令,包括:
接收所述任务节点通过执行所述回调函数触发的任务完成指令。
在本公开实施例中,任务启动指令携带回调函数,回调函数中包括管理平台的访问地址和工作流的流程实例标识,从而任务节点直接执行该回调函数即可实现向管理平台返回任务完成指令,从而简化了任务节点的处理过程,提高了处理效率。
第二方面,本公开实施例提供了一种工作流处理方法,所述方法应用在任务节点中,所述方法包括:
接收管理平台的任务启动指令,所述任务启动指令携带工作流中的当前任务,且当所述当前任务为阻塞任务时,所述管理平台在发送所述任务启动指令之后,将所述工作流的流程实例进入休眠状态;
执行所述当前任务;
当执行完所述当前任务时,向所述管理平台发送任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令用于指示所述管理平台唤醒所述工作流的流程实例。
在本公开实施例中,在当前任务是阻塞任务时,管理平台通知任务节点启动该当前任务后,将工作流的流程实例进入休眠状态;任务节点执行完当前任务时,通知管理平台将该流程实例唤醒,并继续执行该工作流,以达到当前任务的协同处理。由于在任务节点执行当前任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。并且,任务节点执行完当前任务时,会通知管理平台将该流程实例唤醒,从而提高了响应的及时性。
在一个可能的实现方式中,所述任务完成指令中还携带所述当前任务的执行结果和/或所述当前任务的任务标识;
当所述任务完成指令还携带所述当前任务的执行结果时,所述向所述管理平台发送任务完成指令之前,所述方法还包括:
获取所述当前任务的执行结果。
在本公开实施例中,该任务完成指令中还携带当前任务的执行结果,从而管理平台根据该执行结果进行后续工作流的处理。
在另一个可能的实现方式中,所述向所述管理平台发送任务完成指令,包括:
获取所述管理平台的访问地址,根据所述访问地址,向所述管理平台发送所述任务完成指令;或者,
所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识,执行所述回调函数,触发向所述管理平台发送所述任务完成指令。
在本公开实施例中,任务节点可以存储管理平台的访问地址,根据该访问地址向管理平台发送任务完成指令,从而简化了任务启动指令。或者直接执行回调函数,触发向管理平台发送任务完成指令。从而简化了任务节点的处理过程,提高了处理效率。
第三方面,本公开实施例提供了一种工作流处理装置,所述装置应用在管理平台中,所述装置包括:
发送单元,用于向任务节点发送任务启动指令,所述任务启动指令携带工作流中的当前任务,且用于指示所述任务节点执行所述当前任务;
休眠单元,用于当所述当前任务为阻塞任务时,将所述工作流的流程实例进入休眠状态;
第一接收单元,用于接收所述任务节点发送的任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令为所述任务节点执行完所述当前任务时发送的;
唤醒单元,用于根据所述任务完成指令,唤醒所述工作流的流程实例。
在一个可能的实现方式中,所述装置还包括:
存储单元,用于将所述工作流的会话信息存储到数据库中;
处理单元,用于根据所述流程实例标识,从所述数据库中读取所述工作流的会话信息,根据所述会话信息,继续处理所述工作流。
在另一个可能的实现方式中,所述任务完成指令还携带所述当前任务的执行结果和所述当前任务的任务标识;
所述处理单元,还用于根据所述执行结果和所述任务标识,从所述会话信息中确定所述工作流的任务序列中所述当前任务的下一个任务;基于所述会话信息执行所述下一个任务。
在另一个可能的实现方式中,所述装置还包括:
统计单元,用于统计所述任务节点执行所述当前任务的处理时长;
第一确定单元,用于确定所述当前任务的老化时长;
结束单元,用于当所述处理时长超过所述老化时长时,根据所述工作流的流程实例标识,结束所述工作流中的所述当前任务。
在另一个可能的实现方式中,所述装置还包括:
第二确定单元,用于获取所述当前任务的任务类型;当所述任务类型为阻塞任务的任务类型时,确定所述当前任务为阻塞任务;或者,
第二确定单元,用于向所述任务节点发送任务启动指令之后的指定响应时长内没有接收到所述任务完成指令时,确定所述当前任务为阻塞任务。
在另一个可能的实现方式中,所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识;
所述第一接收单元,还用于接收所述任务节点通过执行所述回调函数触发的任务完成指令。
第四方面,本公开实施例提供了一种工作流处理装置,所述装置应用在任务节点中,所述装置包括:
第二接收单元,用于接收管理平台的任务启动指令,所述任务启动指令携带工作流中的当前任务,且当所述当前任务为阻塞任务时,所述管理平台在发送所述任务启动指令之后,将所述工作流的流程实例进入休眠状态;
执行单元,用于执行所述当前任务;
发送单元,用于当执行完所述当前任务时,向所述管理平台发送任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令用于指示所述管理平台唤醒所述工作流的流程实例。
在一个可能的实现方式中,所述任务完成指令中还携带所述当前任务的执行结果和/或所述当前任务的任务标识;
当所述任务完成指令还携带所述当前任务的执行结果时,所述装置还包括:
获取单元,用于获取所述当前任务的执行结果。
在另一个可能的实现方式中,所述发送单元,还用于获取所述管理平台的访问地址,根据所述访问地址,向所述管理平台发送所述任务完成指令;或者,
所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识,所述发送单元,还用于执行所述回调函数,触发向所述管理平台发送所述任务完成指令。
第五方面,本公开实施例提供了一种管理平台,所述管理平台包括:收发器、存储器、处理器;
所述收发器用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,以执行第一方面任一实现方式所述的工作流处理方法。
第六方面,本公开实施例提供了一种任务节点,所述任务节点包括:收发器、存储器、处理器;
所述收发器用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,以执行第二方面任一项实现方式的工作流处理方法。
第七方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述程序被处理器执行时实现第一方面任一实现方式所述的工作流处理方法。
第八方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时实现第二方面任一实现方式所述的工作流处理方法。
附图说明
图1是本公开实施例提供的一种网络架构示意图;
图2是本公开实施例提供的一种管理平台的示意图;
图3是本公开实施例提供的一种任务节点的示意图;
图4是本公开实施例提供的一种工作流处理方法流程图;
图5是本公开实施例提供的一种工作流处理的示意图;
图6是本公开实施例提供的另一种工作流处理的示意图;
图7是本公开实施例提供的一种工作流处理装置的结构示意图;
图8是本公开实施例提供的另一种工作流处理装置的结构示意图;
图9是本公开实施例提供的另一种工作流处理装置的结构示意图;
图10是本公开实施例提供的另一种工作流处理装置的结构示意图;
图11是本公开实施例提供的另一种工作流处理装置的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
在进行详细说明之前,首先对本发明实施例涉及的概念进行如下解释:
工作流:指经过一系列步骤、活动完成某种特定业务的工作序列。一个工作流中包括一个任务系列,该任务系列中包括至少一个任务。例如,一个企业中员工请假时需要组长批准,组长批准之后需要主管批准,主管批准之后需要老板批准。则该请假的工作流中包括任务系列,该任务序列为组长批准请假任务、主管批准请假任务和老板批准请假任务。
阻塞任务:指工作流中的一个任务,该任务需要处理的时间比较长,或者该任务需要处理的时间不可预知。例如,一个请假的工作流中包括老板批准请假任务,但是老板出差了,因此老板批准请假任务长时间不响应,该老板批准请假任务就是阻塞任务。
管理平台:是指管理工作流的平台。该管理平台包括工作流建模工具和工作流引擎。工作流建模工具可以以零编码地把复杂的流程定义通过拖拽的方式,将流程构建出来。工作流引擎则是将定义的流程驱动、调度管理起来。例如,员工通过工作流进行请假,则工作流建模工具为该用户生成一个请假的工作流(组长批准请假任务、主管批准请假任务和老板批准请假任务);工作流引擎将该工作流调度起来,将该组长批准请假任务发送给组长对应的终端,在组长批准该员工请假时,将该主管批准请假任务发送给主管对应的终端,在主管批准该员工请假时,将该老板批准请假任务发送给老板对应的终端,在老板批准该员工请假时,该工作流结束。
任务节点:是指处理工作流中的任务的节点。例如,一个请假的工作流(组长批准请假任务、主管批准请假任务和老板批准请假任务),组长对应的终端、主管对应的终端和老板对应的终端均是任务节点。
协同任务:是指管理平台(例如管理平台中的工作流引擎)和任务提供方(例如,任务节点)之间通过某种机制,高效的协作处理阻塞任务的新类型的任务。
本公开实施例提供了一种网络架构,参见图1,该网络架构包括:管理平台200和至少一个任务节点300。管理平台200通过有线或者无线网络与每个任务节点300相连。其中,管理平台200用于生成工作流,该工作流中包括任务序列,该任务序列中包括至少一个任务。网络架构中的至少一个任务节点300用于执行至少一个任务,且一个任务节点300用于执行一个任务。例如,请假的工作流,则批准请假任务的终端即为任务节点。再如,对车辆进行测试的工作流,则车辆即为任务节点。需要说明的是,图1中是以任务节点为手机终端为例进行描述的。
为了降低管理平台200的性能压力以及提高任务节点300响应的及时性,管理平台200在该工作流中增加一种新的任务类型:协同任务(Collabroative task)。协同任务是指对现有任务进行扩充,增加回调函数和老化时长等参数。回调函数中包括管理平台200的访问地址和工作流的流程实例标识,该访问地址和工作流的流程实例标识均为工作流制作者配置者配置的。该回调函数中还可以包括当前任务的任务标识,该任务标识也可以为工作流制作者配置的,也可以由管理平台200根据该当前任务自动添加的。该回调函数还可以包括执行结果参数,该执行结果参数用于承载当前任务的执行结果,该执行结果为任务节点300执行当前任务得到的结果。管理平台200执行到工作流中的当前任务时,向任务节点300发送该当前任务;当该当前任务为阻塞任务时,管理平台200通过该协同任务将该工作流的流程实例进入休眠状态,同时将该工作流的会话信息存入数据库中,该会话信息包括:流程实例标识、当前任务的任务标识和该工作流的上下文信息等。任务节点300在执行完当前任务时,通过回调函数向管理平台200发送任务完成指令,该任务完成指令用于触发管理平台200唤醒该工作流的流程实例,并继续执行该工作流。
老化时长是指阻塞任务执行的最长时长。该老化时长可以由工作流制定者输入,也可以由工作流引擎提供。为了防止阻塞任务的执行时长过长,管理平台200统计该阻塞任务的执行时长,当该执行时长超过该老化时长时,将该当前任务强制结束。
图2是根据一示例性实施例示出的一种管理平台200的框图。参照图2,管理平台200包括处理组件222,其进一步包括一个或多个处理器,以及由存储器232所代表的存储器资源,用于存储可由处理部件222的执行的指令,例如应用程序。存储器232中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件222被配置为执行指令,以执行下述工作流处理。
管理平台200还可以包括一个电源组件226被配置为执行管理平台200的电源管理,一个有线或无线网络接口250被配置为将管理平台200连接到网络,和一个输入输出(I/O)接口258。管理平台200可以操作基于存储在存储器232的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本实施例提供了一种任务节点,该任务节点可以用于执行下述实施例中提供的工作流处理方法。参见图3,该任务节点30包括:
任务节点300可以包括射频(Radio Frequency,RF)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(Wireless Fidelity,WiFi)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源130等部件。本领域技术人员可以理解,图3中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据任务节点300的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及任务节点300的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图3中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
任务节点300还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在任务节点300移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于任务节点300还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与任务节点300之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与任务节点300的通信。
WiFi属于短距离无线传输技术,任务节点300通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块170,但是可以理解的是,其并不属于任务节点300的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是任务节点300的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行任务节点300的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
任务节点300还包括给各个部件供电的电源130(比如电池),可选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源130还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,任务节点300还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行下述工作流处理方法中任务节点执行的步骤。
本公开实施例提供了一种工作流处理方法,该方法应用在任务节点和管理平台(或者管理平台中的工作流引擎)之间。参见图4,该方法包括:
步骤401:管理平台向任务节点发送任务启动指令,该任务启动指令携带工作流中的当前任务,且用于指示该任务节点执行当前任务。
管理平台生成工作流之后,管理平台调度任务节点执行工作流的任务序列中的任务。并且,管理平台中存储该任务序列中的每个任务标识和执行每个任务节点的节点标识。当执行到当前任务时,管理平台根据该当前任务的任务标识,从任务标识和节点标识的对应关系中获取执行该当前任务的任务节点的节点标识,根据该节点标识,向该任务节点发送任务启动指令。该任务启动指令至少携带该工作流的流程实例标识,该任务启动指令还可以携带该当前任务的任务标识。其中,节点标识可以为节点的名称、编号等。流程实例标识(Instance ID)为工作流的名称、生成时间等。任务标识(Activity ID)可以为任务的名称等。当前任务为任务序列中的任一任务。例如,当前任务为工作流的任务序列中的第一个任务,中间任务或者最后一个任务等。当该当前任务为工作流的任务序列中的第一个任务时,管理平台先启动启动事件,通过该启动事件向该任务节点发送该任务启动指令。
由于阻塞任务的处理时长可能较长,非阻塞任务的处理时长一般比较短。因此,在本公开实施例中,对阻塞任务和非阻塞任务通过不同的处理机制进行处理。因此,管理平台向任务节点发送任务启动指令之前或者之后,管理平台确定当前任务是否为阻塞任务;当该当前任务为阻塞任务时,执行步骤402;当该当前任务不为阻塞任务,执行完当前任务之后,继续执行该工作流。
在一个可能的实现方式中,管理平台基于任务类型确定当前任务是否为阻塞任务。相应的,管理平台确定当前任务是否为阻塞任务的步骤可以为:管理平台确定该当前任务的任务类型,当该任务类型为阻塞任务的任务类型时,确定当前任务为阻塞任务;当该任务类型为非阻塞任务的任务类型时,确定当前任务为非阻塞任务。
管理平台中存储有阻塞任务的阻塞任务类型集合,该阻塞任务类型集合中包括至少一个阻塞任务类型;当该阻塞任务类型集合中包括当前任务的任务类型时,管理平台确定该任务类型为阻塞任务的任务类型;当该阻塞任务类型集合中不包括当前任务的任务类型时,管理平台确定该任务类型为非阻塞任务的任务类型。另外,管理平台中还可以存储非阻塞任务的非阻塞任务类型集合,该非阻塞任务类型集合中包括至少一个非阻塞任务类型;当该非阻塞任务类型集合中包括该当前任务的任务类型时,管理平台确定该任务类型为非阻塞任务的任务类型;当该非阻塞任务集合中不包括该当前任务的任务类型时,管理平台确定该任务类型为阻塞任务的任务类型。
在另一个可能的实现方式中,管理平台向任务节点发送当前任务后,如果该当前任务为非阻塞任务,任务节点在一段时间内就会执行完当前任务,并向管理平台返回任务完成指令;因此,管理平台可以基于返回任务完成指令的响应时间,确定当前任务是否为阻塞任务。相应的,管理平台确定当前任务是否为阻塞任务的步骤可以为:管理平台确定指定响应时长,当管理平台向该任务节点发送任务启动指令之后的指定响应时长内没有接收到该任务完成指令时,确定该当前任务为阻塞任务。管理平台向该任务节点发送任务启动指令之后的指定响应时长内接收到该任务完成指令时,确定该当前任务为非阻塞任务。
指定响应时长可以根据需要进行设置并更改,在本公开实施例中,对指定响应时长不作具体限定。在一个可能的实现方式中,管理平台设置默认的响应时长;相应的,管理平台确定指定响应时长的步骤可以为:管理平台获取默认的响应时长,将该默认的响应时长作为指定响应时长。在另一个可能的实现方式中,管理平台设置不同的任务类型对应不同的响应时长;相应的,管理平台确定指定响应时长的步骤可以为:管理平台根据当前任务的任务类型,从任务类型和响应时长的对应关系中获取当前任务的指定响应时长。在另一个可能的实现方式中,管理平台设置不同的任务标识对应不同的响应时长;相应的,管理平台确定指定响应时长的步骤可以为:管理平台根据当前任务的任务标识,从任务标识和响应时长的对应关系中获取当前任务的指定响应时长。
例如,参见图5,一个请假的工作流的任务序列包括:主管批准请假任务和老板批准请假任务。主管批准请假任务由第一任务节点执行,老板批准请假任务由第二任务节点执行。管理平台生成该工作流之后,通过启动事件启动该工作流,并向第一任务节点发送主管批准请假任务。在第一任务节点执行完主管批准请假任务后,管理平台向第二任务节点发送老板批准请假任务。在第二任务节点执行完老板批准请假任务后,管理平台通过结束事件结束该工作流。例如,当前执行主管批准请假任务,且主管出差时,管理平台确定该主管批准请假任务是阻塞任务。
需要说明的是,工作流的工作序列中的多个任务可以串行的,也可以是并行的,也可以为部分任务是串行的,部分任务是并行的。例如,该工作流的工作序列中包括4个任务,分别为任务A、任务B、任务C和任务D;其中任务A、任务B和任务C是并行的,任务D与任务A、任务B和任务C是串行的。也即执行完任务A、任务B和任务C之后,才执行任务D。当该工作流的工作序列中的多个任务是并行的,当前同时执行多个当前任务;此时管理平台确定每个当前任务的任务节点的节点标识,向每个任务节点发送其对应的当前任务。相应的,管理平台确定每个当前任务是否为阻塞任务。对于每个当前任务,如果该当前任务是阻塞任务,执行步骤402。
步骤402:当该当前任务为阻塞任务时,管理平台将该工作流的流程实例进入休眠状态。
当该当前任务为阻塞任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。
步骤403:管理平台获取工作流的会话信息,将该会话信息存储到数据库中。
当该管理平台当前仅管理一个工作流时,管理平台可以直接将该会话信息存储到数据库中。当该管理平台当前同时管理多个工作流时,管理平台将该工作流的流程实例标识和该工作流的会话信息的对应关系存储到数据库中。该会话信息至少包括该工作流的流程实例标识和该工作流的上下文信息。该会话信息还可以包括该当前任务的任务标识。
在本公开实施例中,管理平台将该工作流的流程实例进入休眠状态,并将该工作流的会话信息存入数据库中。从而进入休眠状态的工作流,只在数据库中进行存储,不再周期性对其进行调度,在等待期间,只消耗存储资源,不再占用计算资源,降低了管理平台的性能压力。
步骤404:任务节点接收管理平台的任务启动指令,执行当前任务。
任务节点接收到该任务启动指令后,从该启动指令中获取当前任务,执行该当前任务。另外,该任务启动指令中还可以包括该工作流的会话信息;相应的,管理平台执行该当前任务的步骤可以为:管理平台根据该会话信息,执行该当前任务。
步骤405:当该任务节点执行完当前任务时,该任务节点向管理平台发送任务完成指令,该任务完成指令至少携带该工作流的流程实例标识。
在一个可能的实现方式中,该任务节点获取管理平台的访问地址,根据该管理平台的访问地址,向该管理平台发送任务完成指令。该任务完成指令至少携带该工作流的流程标识,该任务完成指令还可以携带当前任务的任务标识和/或执行结果。当该任务完成指令携带当前任务的执行结果时,该任务节点执行完当前任务之后,该任务节点获取当前任务的执行结果,该执行结果可以包括执行成功或者执行失败。该访问地址可以管理平台的IP端口号,也可以为管理平台的域名。在本公开实施例中,对该访问地址不作具体限定。
该工作流中包括协同任务,该协同任务中包括该管理平台的访问地址;相应的,该任务节点获取管理平台的访问地址的步骤可以为:该任务节点从该协同任务中获取该管理平台的访问地址。另外,该工作流中也可以不包括协同任务,而事先在每个任务节点中存储该管理平台的访问地址。相应的,该任务节点获取管理平台的访问地址的步骤可以为:该任务节点获取已存储的该管理平台的访问地址。需要说明的是,由于在实际应用中,由该管理平台中的工作流引擎对工作流进行管理,因此,该管理平台的访问地址可以为该管理平台中的工作流引擎的访问地址。
在另一个可能的实现方式中,管理平台向任务节点发送的任务启动指令中包括回调函数,该回调函数中至少包括管理平台的访问地址和工作流的流程实例标识。该回调函数中还可以包括当前任务的任务标识、老化时间和/或当前任务的执行结果。并且,该回调函数用于向管理平台触发任务完成指令。因此,该任务节点向管理平台发送任务完成指令的步骤可以为:该任务节点执行该回调函数,触发向管理平台发送该任务完成指令。
例如,该回调函数的参数可以如下所示:
其中,CallBackURL为回调函数;ip:Port为管理平台的访问地址,AgingTime为老化时长。StartProcessInstanceID为工作流的流程实例标识,InstanceID为流程实例标识,ActivityID为任务标识,TaskA为任务节点的节点标识。Result为执行结果。
需要说明的是,管理平台中设置服务接口,任务节点通过该服务接口向管理平台发送任务完成指令。
步骤406:管理平台接收该任务节点的任务完成指令,根据该任务完成指令唤醒该工作流的流程实例。
该任务完成指令执行携带该工作流的流程实例标识;管理平台从该任务完成指令中获取该流程实例标识。该任务完成指令中还可以携带当前任务的任务标识和/或执行结果,相应的,管理平台从该任务完成指令中获取当前任务的任务标识和/或执行结果。
步骤407:管理平台根据该流程实例标识,从数据库中读取所述工作流的会话信息,根据该会话信息,继续处理该工作流。
管理平台根据该流程实例标识,从数据库中的流程实例标识和会话信息的对应关系中读取该工作流的会话信息。管理平台根据该会话信息,确定该当前任务是否为该工作流的任务序列中的最后一个任务;当该当前任务是该任务序列中的最后一个任务,结束该工作流。当该当前任务不是该任务序列中的最后一个任务时,管理平台从该会话信息中确定该任务序列中该当前任务的下一个任务,基于该会话信息执行该下一个任务。
当该任务完成指令中还携带该任务标识和执行结果时,管理平台从该会话信息中确定该任务序列中该当前任务的下一个任务的步骤可以为:管理平台根据该执行结果和该任务标识,从该会话信息中确定该工作流的任务序列中当前任务的下一个任务。另外,当该任务完成指令中还携带该任务标识时,管理平台基于该会话信息执行该下一个任务的步骤可以为:管理平台将该执行结果添加到会话信息中,基于会话信息执行下一个任务。
需要说明的是,当管理平台管理多个当前任务,且多个当前任务均为阻塞任务时,管理平台中包括并行网关,通过并行网关通过多个任务节点并行执行多个任务。相应的,管理平台中还包括汇聚网关,通过该汇聚网关,基于流程实例标识和任务标识,继续执行该工作流。
例如,参见图6,当管理平台管理多个任务,包括任务A、任务B、任务C和任务D,任务A、任务B和任务C为并行关系,任务D与其他三个任务的关系为串行关系。第一任务节点用于执行任务A,第二任务节点用于执行任务B,第三任务节点用于执行任务C,第四任务节点用于执行任务D。任务A、任务B和任务C均为阻塞任务时,管理平台中包括并行网关,管理平台通过并行网关,启动任务A、任务B和任务C,通过汇聚网关,基于任务A、任务B和任务C的任务标识继续执行该工作流。
在本公开实施例中,由于当前任务为阻塞任务,为了避免当前任务的执行时长过长,管理平台还可以强制结束该工作流的流程实例。相应的,该过程可以为:管理平台统计该任务节点执行当前任务的处理时长;确定该当前任务的老化时长;当处理时长超过当前任务的老化时长时,根据工作流的流程实例标识,结束工作流中的当前任务。
需要说明的是,该当前任务的老化时长是指该当前任务执行的最长时长。在一个可能的实现方式中,该当前任务的老化时长可以由工作流制定者输入,也可以由管理平台提供默认的工作流超时时间,还可以由任务节点设置。相应的,管理平台确定该当前任务的老化时长的步骤可以为:管理平台获取工作流制定者输入的老化时长;或者,获取管理平台设置的默认的老化时长。
在另一个可能的实现方式中,管理平台为不同的工作流设置不同的老化时长。相应的,管理平台确定该当前任务的老化时长的步骤可以为:管理平台根据该工作流的流程实例标识,从流程实例标识和老化时长的对应关系中获取该当前任务的老化时长。在另一个可能的实现方式中,管理平台为不同的任务设置不同的老化时长。相应的,管理平台确定该当前任务的老化时长的步骤可以为:管理平台根据该当前任务的任务标识,从任务标识和老化时长的对应关系中获取该当前任务的老化时长。
在另一个可能的实现方式中,管理平台还可以为不同的任务类型设置不同的老化时长。相应的,管理平台确定该当前任务的老化时长的步骤可以为:管理平台确定该当前任务的任务类型,根据该任务类型,从任务类型和老化时长的对应关系中获取该当前任务的老化时长。在另一个可能的实现方式中,管理平台还可以设置不同的任务优先级对应不同的老化时长;相应的,管理平台确定该当前任务的老化时长的步骤可以为:管理平台确定该当前任务的优先级别,根据该当前任务的优先级别,从优先级别和老化时长的对应关系中获取该当前任务的老化时长。
在本公开实施例中,在当前任务是阻塞任务时,管理平台通知任务节点启动该当前任务后,将工作流的流程实例进入休眠状态;任务节点执行完当前任务时,通知管理平台将该流程实例唤醒,并继续执行该工作流,以达到当前任务的协同处理。由于在任务节点执行当前任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。并且,任务节点执行完当前任务时,会通知管理平台将该流程实例唤醒,从而提高了响应的及时性。
本公开实施例提供了一种工作流处理装置,该装置应用在管理平台中,用于执行上述工作流处理方法中管理平台执行的步骤。参见图7,该装置包括:
发送单元701,用于向任务节点发送任务启动指令,该任务启动指令携带工作流中的当前任务,且用于指示该任务节点执行该当前任务;
休眠单元702,用于当该当前任务为阻塞任务时,将该工作流的流程实例进入休眠状态;
第一接收单元703,用于接收该任务节点发送的任务完成指令,该任务完成指令至少携带该工作流的流程实例标识,且该任务完成指令为该任务节点执行完该当前任务时发送的;
唤醒单元704,用于根据该任务完成指令,唤醒该工作流的流程实例。
在一个可能的实现方式中,参见图8,该装置还包括:
存储单元705,用于将该工作流的会话信息存储到数据库中;
处理单元706,用于根据该流程实例标识,从该数据库中读取该工作流的会话信息,根据该会话信息,继续处理该工作流。
在另一个可能的实现方式中,该任务完成指令还携带该当前任务的执行结果和该当前任务的任务标识;
该处理单元706,还用于根据该执行结果和该任务标识,从该会话信息中确定该工作流的任务序列中该当前任务的下一个任务;基于该会话信息执行该下一个任务。
在另一个可能的实现方式中,参见图9,该装置还包括:
统计单元707,用于统计该任务节点执行该当前任务的处理时长;
第一确定单元708,用于确定该当前任务的老化时长;
结束单元709,用于当该处理时长超过该老化时长时,根据该工作流的流程实例标识,结束该工作流中的该当前任务。
在另一个可能的实现方式中,该装置还包括:
第二确定单元,用于获取该当前任务的任务类型;当该任务类型为阻塞任务的任务类型时,确定该当前任务为阻塞任务;或者,
第二确定单元,用于向该任务节点发送任务启动指令之后的指定响应时长内没有接收到该任务完成指令时,确定该当前任务为阻塞任务。
在另一个可能的实现方式中,该任务启动指令还携带回调函数,该回调函数中包括该管理平台的访问地址和该工作流的流程实例标识;
该第一接收单元703,还用于接收该任务节点通过执行该回调函数触发的任务完成指令。
在本公开实施例中,在当前任务是阻塞任务时,管理平台通知任务节点启动该当前任务后,将工作流的流程实例进入休眠状态;任务节点执行完当前任务时,通知管理平台将该流程实例唤醒,并继续执行该工作流,以达到当前任务的协同处理。由于在任务节点执行当前任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。并且,任务节点执行完当前任务时,会通知管理平台将该流程实例唤醒,从而提高了响应的及时性。
本公开实施例提供了一种工作流处理装置,该装置应用在任务节点中,用于执行上述工作流处理方法中任务节点执行的步骤。参见图10,该装置包括:
第二接收单元1001,用于接收管理平台的任务启动指令,该任务启动指令携带工作流中的当前任务,且当该当前任务为阻塞任务时,该管理平台在发送该任务启动指令之后,将该工作流的流程实例进入休眠状态;
执行单元1002,用于执行该当前任务;
发送单元1003,用于当执行完该当前任务时,向该管理平台发送任务完成指令,该任务完成指令至少携带该工作流的流程实例标识,且该任务完成指令用于指示该管理平台唤醒该工作流的流程实例。
在一个可能的实现方式中,参见图11,该任务完成指令中还携带该当前任务的执行结果和/或该当前任务的任务标识;
当该任务完成指令还携带该当前任务的执行结果时,该装置还包括:
获取单元1004,用于获取该当前任务的执行结果。
在另一个可能的实现方式中,该发送单元1003,还用于获取该管理平台的访问地址,根据该访问地址,向该管理平台发送该任务完成指令;或者,
该任务启动指令还携带回调函数,该回调函数中包括该管理平台的访问地址和该工作流的流程实例标识,该发送单元1003,还用于执行该回调函数,触发向该管理平台发送该任务完成指令。
在本公开实施例中,在当前任务是阻塞任务时,管理平台通知任务节点启动该当前任务后,将工作流的流程实例进入休眠状态;任务节点执行完当前任务时,通知管理平台将该流程实例唤醒,并继续执行该工作流,以达到当前任务的协同处理。由于在任务节点执行当前任务时,管理平台将该工作流的流程实例进入休眠状态,从而降低了管理平台的性能压力。并且,任务节点执行完当前任务时,会通知管理平台将该流程实例唤醒,从而提高了响应的及时性。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于终端,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的工作流处理方法中管理平台所执行的操作。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于终端,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的工作流处理方法中任务节点所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (22)

1.一种工作流处理方法,其特征在于,所述方法应用在管理平台中,所述方法包括:
向任务节点发送任务启动指令,所述任务启动指令携带工作流中的当前任务,且用于指示所述任务节点执行所述当前任务;
当所述当前任务为阻塞任务时,将所述工作流的流程实例进入休眠状态;
接收所述任务节点发送的任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令为所述任务节点执行完所述当前任务时发送的;
根据所述任务完成指令,唤醒所述工作流的流程实例。
2.根据权利要求1所述的方法,其特征在于,所述将所述工作流的流程实例进入休眠状态之后,所述方法还包括:
将所述工作流的会话信息存储到数据库中;
相应的,所述根据所述任务完成指令,唤醒所述工作流的流程实例之后,所述方法还包括:
根据所述流程实例标识,从所述数据库中读取所述工作流的会话信息,根据所述会话信息,继续处理所述工作流。
3.根据权利要求2所述的方法,其特征在于,所述任务完成指令还携带所述当前任务的执行结果和所述当前任务的任务标识;所述根据所述会话信息,继续处理所述工作流,包括:
根据所述执行结果和所述任务标识,从所述会话信息中确定所述工作流的任务序列中所述当前任务的下一个任务;
基于所述会话信息执行所述下一个任务。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计所述任务节点执行所述当前任务的处理时长;
确定所述当前任务的老化时长;
当所述处理时长超过所述老化时长时,根据所述工作流的流程实例标识,结束所述工作流中的所述当前任务。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前任务的任务类型;当所述任务类型为阻塞任务的任务类型时,确定所述当前任务为阻塞任务;或者,
向所述任务节点发送任务启动指令之后的指定响应时长内没有接收到所述任务完成指令时,确定所述当前任务为阻塞任务。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识;
所述接收所述任务节点发送的任务完成指令,包括:
接收所述任务节点通过执行所述回调函数触发的任务完成指令。
7.一种工作流处理方法,其特征在于,所述方法应用在任务节点中,所述方法包括:
接收管理平台的任务启动指令,所述任务启动指令携带工作流中的当前任务,且当所述当前任务为阻塞任务时,所述管理平台在发送所述任务启动指令之后,将所述工作流的流程实例进入休眠状态;
执行所述当前任务;
当执行完所述当前任务时,向所述管理平台发送任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令用于指示所述管理平台唤醒所述工作流的流程实例。
8.根据权利要求7所述的方法,其特征在于,所述任务完成指令中还携带所述当前任务的执行结果和/或所述当前任务的任务标识;
当所述任务完成指令还携带所述当前任务的执行结果时,所述向所述管理平台发送任务完成指令之前,所述方法还包括:
获取所述当前任务的执行结果。
9.根据权利要求7或8所述的方法,其特征在于,所述向所述管理平台发送任务完成指令,包括:
获取所述管理平台的访问地址,根据所述访问地址,向所述管理平台发送所述任务完成指令;或者,
所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识,执行所述回调函数,触发向所述管理平台发送所述任务完成指令。
10.一种工作流处理装置,其特征在于,所述装置应用在管理平台中,所述装置包括:
发送单元,用于向任务节点发送任务启动指令,所述任务启动指令携带工作流中的当前任务,且用于指示所述任务节点执行所述当前任务;
休眠单元,用于当所述当前任务为阻塞任务时,将所述工作流的流程实例进入休眠状态;
第一接收单元,用于接收所述任务节点发送的任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令为所述任务节点执行完所述当前任务时发送的;
唤醒单元,用于根据所述任务完成指令,唤醒所述工作流的流程实例。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
存储单元,用于将所述工作流的会话信息存储到数据库中;
处理单元,用于根据所述流程实例标识,从所述数据库中读取所述工作流的会话信息,根据所述会话信息,继续处理所述工作流。
12.根据权利要求11所述的装置,其特征在于,所述任务完成指令还携带所述当前任务的执行结果和所述当前任务的任务标识;
所述处理单元,还用于根据所述执行结果和所述任务标识,从所述会话信息中确定所述工作流的任务序列中所述当前任务的下一个任务;基于所述会话信息执行所述下一个任务。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
统计单元,用于统计所述任务节点执行所述当前任务的处理时长;
第一确定单元,用于确定所述当前任务的老化时长;
结束单元,用于当所述处理时长超过所述老化时长时,根据所述工作流的流程实例标识,结束所述工作流中的所述当前任务。
14.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二确定单元,用于获取所述当前任务的任务类型;当所述任务类型为阻塞任务的任务类型时,确定所述当前任务为阻塞任务;或者,
第二确定单元,用于向所述任务节点发送任务启动指令之后的指定响应时长内没有接收到所述任务完成指令时,确定所述当前任务为阻塞任务。
15.根据权利要求10-14任一项所述的装置,其特征在于,所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识;
所述第一接收单元,还用于接收所述任务节点通过执行所述回调函数触发的任务完成指令。
16.一种工作流处理装置,其特征在于,所述装置应用在任务节点中,所述装置包括:
第二接收单元,用于接收管理平台的任务启动指令,所述任务启动指令携带工作流中的当前任务,且当所述当前任务为阻塞任务时,所述管理平台在发送所述任务启动指令之后,将所述工作流的流程实例进入休眠状态;
执行单元,用于执行所述当前任务;
发送单元,用于当执行完所述当前任务时,向所述管理平台发送任务完成指令,所述任务完成指令至少携带所述工作流的流程实例标识,且所述任务完成指令用于指示所述管理平台唤醒所述工作流的流程实例。
17.根据权利要求16所述的装置,其特征在于,所述任务完成指令中还携带所述当前任务的执行结果和/或所述当前任务的任务标识;
当所述任务完成指令还携带所述当前任务的执行结果时,所述装置还包括:
获取单元,用于获取所述当前任务的执行结果。
18.根据权利要求16或17所述的装置,其特征在于,
所述发送单元,还用于获取所述管理平台的访问地址,根据所述访问地址,向所述管理平台发送所述任务完成指令;或者,
所述任务启动指令还携带回调函数,所述回调函数中包括所述管理平台的访问地址和所述工作流的流程实例标识,所述发送单元,还用于执行所述回调函数,触发向所述管理平台发送所述任务完成指令。
19.一种管理平台,其特征在于,所述管理平台包括:收发器、存储器、处理器;
所述收发器用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,以执行权利要求1-6任一项所述的工作流处理方法。
20.一种任务节点,其特征在于,所述任务节点包括:收发器、存储器、处理器;
所述收发器用于接收报文;
所述存储器用于存储指令和数据;
所述处理器,用于读取所述存储器中存储的指令和数据,以执行权利要求7-9任一项所述的工作流处理方法。
21.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6任一项所述的工作流处理方法。
22.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求7-9任一项所述的工作流处理方法。
CN201711450041.0A 2017-12-27 2017-12-27 工作流处理方法、装置、设备及存储介质 Pending CN109978482A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711450041.0A CN109978482A (zh) 2017-12-27 2017-12-27 工作流处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711450041.0A CN109978482A (zh) 2017-12-27 2017-12-27 工作流处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN109978482A true CN109978482A (zh) 2019-07-05

Family

ID=67071741

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711450041.0A Pending CN109978482A (zh) 2017-12-27 2017-12-27 工作流处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109978482A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353752A (zh) * 2019-11-05 2020-06-30 泰康保险集团股份有限公司 流程处理方法及装置、电子设备、存储介质
CN111754207A (zh) * 2020-06-30 2020-10-09 深圳壹账通智能科技有限公司 流程实例管理方法、装置、计算机设备及可读存储介质
CN112035240A (zh) * 2020-10-09 2020-12-04 北京达佳互联信息技术有限公司 任务管理方法、装置及系统
CN112506957A (zh) * 2020-12-18 2021-03-16 杭州数梦工场科技有限公司 工作流依赖关系的确定方法及装置
WO2024037132A1 (zh) * 2022-08-15 2024-02-22 腾讯科技(深圳)有限公司 工作流处理方法、装置、设备、存储介质和程序产品
CN111353752B (zh) * 2019-11-05 2024-04-19 泰康保险集团股份有限公司 流程处理方法及装置、电子设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838068A (zh) * 2004-09-29 2006-09-27 微软公司 协作应用程序中的工作流关联
CN101567068A (zh) * 2009-05-18 2009-10-28 北京方正春元科技发展有限公司 一种用于财政信息管理的数据处理系统
CN102222023A (zh) * 2010-04-15 2011-10-19 微软公司 异步工作流
CN103345664A (zh) * 2013-05-31 2013-10-09 华为技术有限公司 工作流-任务调度适配方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838068A (zh) * 2004-09-29 2006-09-27 微软公司 协作应用程序中的工作流关联
CN101567068A (zh) * 2009-05-18 2009-10-28 北京方正春元科技发展有限公司 一种用于财政信息管理的数据处理系统
CN102222023A (zh) * 2010-04-15 2011-10-19 微软公司 异步工作流
CN103345664A (zh) * 2013-05-31 2013-10-09 华为技术有限公司 工作流-任务调度适配方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353752A (zh) * 2019-11-05 2020-06-30 泰康保险集团股份有限公司 流程处理方法及装置、电子设备、存储介质
CN111353752B (zh) * 2019-11-05 2024-04-19 泰康保险集团股份有限公司 流程处理方法及装置、电子设备、存储介质
CN111754207A (zh) * 2020-06-30 2020-10-09 深圳壹账通智能科技有限公司 流程实例管理方法、装置、计算机设备及可读存储介质
CN112035240A (zh) * 2020-10-09 2020-12-04 北京达佳互联信息技术有限公司 任务管理方法、装置及系统
CN112506957A (zh) * 2020-12-18 2021-03-16 杭州数梦工场科技有限公司 工作流依赖关系的确定方法及装置
WO2024037132A1 (zh) * 2022-08-15 2024-02-22 腾讯科技(深圳)有限公司 工作流处理方法、装置、设备、存储介质和程序产品

Similar Documents

Publication Publication Date Title
CN105824958B (zh) 一种查询日志的方法、装置和系统
CN105278937B (zh) 一种显示弹出框消息的方法及装置
CN104462119B (zh) 数据迁移方法及装置
CN103500002B (zh) 应用程序管理的方法、装置及终端设备
EP3306865A1 (en) Communication message sending method and device
CN105119806B (zh) 消息更新方法及装置
CN108959000A (zh) 一种服务器压力测试方法、系统及终端
CN104142868B (zh) 建立连接的方法及装置
CN105471704B (zh) 一种实现多人通话的方法、装置及系统
CN109978482A (zh) 工作流处理方法、装置、设备及存储介质
CN103455407A (zh) 一种移动终端cpu占用率监测方法、装置及移动终端
CN104423822B (zh) 录制自动化测试脚本的方法及装置
CN107391198B (zh) 任务调度方法和装置、计算机可读存储介质、移动终端
CN105207880B (zh) 群组推荐方法和装置
CN103473011A (zh) 一种移动终端性能检测方法、装置及移动终端
CN104954233B (zh) 信息推送方法、装置和系统
CN104077184B (zh) 一种应用程序的进程控制方法及计算机系统
CN106371900A (zh) 一种实现异步调用的数据处理方法及装置
CN105740145B (zh) 定位控件中的元素的方法及装置
CN107368400A (zh) Cpu监测方法、装置、计算机可读存储介质和移动终端
CN106326073B (zh) 信息处理的方法及移动终端
CN106385485A (zh) 通话录音方法、装置及移动终端
CN107465802A (zh) 一种显示通讯消息的方法、装置和系统
CN106789307B (zh) 配置数据处理方法、装置及系统
WO2014183438A1 (en) Method, apparatus, and communication system for allocating and managing voice channels

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190705

RJ01 Rejection of invention patent application after publication