CN110599005B - 流程解析方法、装置、计算机可读存储介质和电子设备 - Google Patents
流程解析方法、装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN110599005B CN110599005B CN201910784861.6A CN201910784861A CN110599005B CN 110599005 B CN110599005 B CN 110599005B CN 201910784861 A CN201910784861 A CN 201910784861A CN 110599005 B CN110599005 B CN 110599005B
- Authority
- CN
- China
- Prior art keywords
- message
- node
- flow node
- flow
- completion
- 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
- 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/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种流程解析方法、装置、计算机可读存储介质和电子设备,该方法包括:第一流程节点接收消息中心发送的第一完成消息,第一完成消息包括操作完成的第二流程节点的标识信息,消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,来自于消息发布者的完成消息包括消息发布者的标识信息;若根据第二流程节点的标识信息,确定第二流程节点为第一流程节点的前置节点,则确定第一流程节点的全部前置节点的操作是否都已完成;若第一流程节点的全部前置节点的操作都已完成、且满足第一流程节点的执行条件,则执行第一流程节点的操作。由此可以将流程解析分散至各个流程节点驱动,降低流程解析的集中度和复杂度。
Description
技术领域
本公开涉及流程处理领域,具体地,涉及一种流程解析方法、装置、计算机可读存储介质和电子设备。
背景技术
物理主机、网络设备等IT基础设施存在大量的日常运维任务,这些任务之间通常有顺序关系,一个运维步骤执行完成后才能启动下一个运维步骤,把这些步骤串接起来就形成了运维流程。现有技术中,在对该流程进行解析时,通常是通过主控程序驱动各个流程节点运行,该方式中流程解析集中,控制逻辑复杂,并且该需要明确与运维流程中的节点关联的各个流程节点,从而对下一级节点进行触发才可以驱动流程流转。
发明内容
本公开的目的是提供一种复杂度低、集中度低的流程解析方法、装置、计算机可读存储介质和电子设备。
为了实现上述目的,根据本公开的第一方面,提供一种流程解析方法,所述方法包括:
第一流程节点接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息;
若根据所述第二流程节点的标识信息,确定所述第二流程节点为所述第一流程节点的前置节点,则确定所述第一流程节点的全部前置节点的操作是否都已完成;
若所述第一流程节点的全部前置节点的操作都已完成、且满足所述第一流程节点的执行条件,则执行所述第一流程节点的操作。
可选地,所述方法还包括:
若所述第一流程节点的全部前置节点的操作都已完成,则向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
可选地,所述方法还包括:
在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息;或者
若所述第一流程节点的操作执行异常,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息;或者
若所述第一流程节点不可执行,则将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
可选地,所述确定所述第一流程节点的全部前置节点的操作是否都已完成,包括:
遍历所述第一流程节点的全部前置节点的状态;
在所述第一流程节点的全部前置节点中,若全部前置节点均为完成态,或者均为禁止执行状态,或者一部分前置节点为完成态而另一部分前置节点为禁止执行状态,则确定所述第一流程节点的全部前置节点的操作都已完成。
可选地,所述消息订阅者还包括流程实例,以便所述流程实例在接收到结束节点或异常终止的流程节点的完成消息后确定流程解析结束。
根据本公开的第二方面,提供一种流程解析装置,所述装置包括:
接收模块,用于接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息;
确定模块,用于在根据所述第二流程节点的标识信息,确定所述第二流程节点为所述第一流程节点的前置节点的情况下,确定所述第一流程节点的全部前置节点的操作是否都已完成;
执行模块,用于在所述第一流程节点的全部前置节点的操作都已完成、且满足所述第一流程节点的执行条件的情况下,则执行所述第一流程节点的操作。
可选地,所述装置还包括:
发送模块,用于在所述第一流程节点的全部前置节点的操作都已完成的情况下,向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
可选地,所述装置还包括:
第一处理模块,用于在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息;或者
第二处理模块,用于在所述第一流程节点的操作执行异常的情况下,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息;或者
第三处理模块,用于在所述第一流程节点不可执行的情况下,将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
可选地,所述确定模块包括:
遍历子模块,用于遍历所述第一流程节点的全部前置节点的状态;
确定子模块,用于在所述第一流程节点的全部前置节点中,若全部前置节点均为完成态,或者均为禁止执行状态,或者一部分前置节点为完成态而另一部分前置节点为禁止执行状态,则确定所述第一流程节点的全部前置节点的操作都已完成。
可选地,所述消息订阅者还包括流程实例,以便所述流程实例在接收到结束节点或异常终止的流程节点的完成消息后确定流程解析结束。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面任一所述方法的步骤。
在上述技术方案中,通过完成消息的发布和订阅,实现流程中各个流程节点之间的消息通信,当前流程节点可以根据完成消息中包括的标识信息确定该完成消息是否是其前置节点发布的,在当前流程节点的全部前置节点的操作都已完成、且满足当前流程节点的执行条件时,则执行当前流程节点的操作。因此,一方面可以将流程解析分散至各个流程节点驱动,降低流程解析的集中度和复杂度,另一方面,通过完成消息的发布和订阅实现流程中各个流程节点之间的消息通信,可以不需要像现有技术中、当前流程节点不仅需要明确其前置节点,也需要明确其后置节点,通过当前节点向其后置节点直接发送触发消息以实现流程节点之间的运转,从而提高流程解析的效率和数据处理量,进而保证流程解析的准确度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的流程解析方法的流程图;
图2是根据本公开的一种实施方式提供的流程拓扑的示意图;
图3是根据本公开的一种实施方式提供的流程解析装置的框图;
图4是根据一示例性实施例示出的一种电子设备的框图;
图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1所示,为根据本公开的一种实施方式提供的流程解析方法的流程图。如图1所示,所述方法包括:
在S11中,第一流程节点接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息。其中,消息中心可以通过消息队列对来自消息发布者的完成消息进行存储,第二流程节点作为该完成消息的消息发布者,第一流程节点则为该完成消息的消息订阅者。消息发布者的标识信息可以是该消息发布者的流程节点ID,本公开对此不进行限定。
可选地,消息中心在将消息队列中的消息发布给相应的消息订阅者后,可以将该完成消息从消息队列中移出,以提高存储空间利用率,并避免消息订阅者重复获取该完成消息。
示例地,在流程启动时,可以对该流程的流程实例进行初始化。具体地,可以通过如下方式进行初始化:
初始化该流程实例中的全部流程节点,即将全部流程节点的状态设置为初始态;并根据流程节点之间的关联关系,确定出每个流程节点对应的前置节点,该前置节点为与当前流程节点具有直接关联关系且运行在当前流程节点之前的节点,如图2所示,流程节点K的前置节点为流程节点E,流程节点E的前置节点为流程节点A、B、C。同时,每个流程节点向消息中心注册一订阅消息,以从该消息中心订阅“完成消息”。完成消息对应的消息订阅者即为当前在消息中心中订阅该完成消息的流程节点。如图2所示,在初始时,消息订阅者为该流程实例中的全部流程节点。
在S12中,若根据第二流程节点的标识信息,确定第二流程节点为第一流程节点的前置节点,则确定第一流程节点的全部前置节点的操作是否都已完成。
其中,如上文所述,在流程实例初始化时已确定出每个流程节点的前置节点。因此,第一流程节点可以根据第一完成消息中包括的第二流程节点的标识信息,确定该标识信息与第一流程节点的前置节点的标识信息是否相同。若相同,则表示第二流程节点为第一流程节点的前置节点,若不相同,则表示第二流程节点不是第一流程节点的前置节点,此时,第一流程节点可以直接忽略该第一完成消息。
在S13中,若第一流程节点的全部前置节点的操作都已完成、且满足第一流程节点的执行条件,则执行第一流程节点的操作。
其中,在第一流程节点的前置节点为多个时,在确定该多个前置节点的操作都已完成后,该第一流程节点才可能被执行。
可选地,若第一流程节点的前置节点为一个、且该前置节点为判断节点,则该第一流程节点的执行条件为:第一流程节点的前置节点的状态为完成态、且第一流程节点满足其前置节点的判定结果。
若第一流程节点的前置节点不包含判断节点,则该第一流程节点的执行条件为:所述第一流程节点的前置节点中至少存在一个状态为完成态的前置节点。
若第一流程节点的前置节点为多个、且包含判断节点,则该第一流程节点的执行条件为:所述第一流程节点的前置节点中至少存在一个状态为完成态的前置节点,并且在状态为完成态的前置节点为判断节点时,第一流程节点满足该判断节点的判定结果。
在上述技术方案中,通过完成消息的发布和订阅,实现流程中各个流程节点之间的消息通信,当前流程节点可以根据完成消息中包括的标识信息确定该完成消息是否是其前置节点发布的,在当前流程节点的全部前置节点的操作都已完成、且满足当前流程节点的执行条件时,则执行当前流程节点的操作。因此,一方面可以将流程解析分散至各个流程节点驱动,降低流程解析的集中度和复杂度,另一方面,通过完成消息的发布和订阅实现流程中各个流程节点之间的消息通信,可以不需要像现有技术中、当前流程节点不仅需要明确其前置节点,也需要明确其后置节点,通过当前节点向其后置节点直接发送触发消息以实现流程节点之间的运转,从而提高流程解析的效率和数据处理量,进而保证流程解析的准确度。
可选地,所述方法还包括:
若所述第一流程节点的全部前置节点的操作都已完成,则向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
其中,第一流程节点的全部前置节点的操作都已完成,此时无论该第一流程节点是否可执行,其都不需要再接收其他流程节点的完成消息,因此,第一流程节点可以向消息中心发送订阅结束消息。消息中心在接收到该订阅结束消息时,根据第一流程节点的标识信息取消第一流程节点的消息订阅者身份,由此,第一流程节点不再从消息中心中接收完成消息,从而可以避免接收过多不必要的完成消息造成的数据传输资源浪费,同时也可以有效降低消息中心的数据分发量,降低流程数据解析的数据量,从而提高流程解析的效率。
可选地,所述方法还包括:
在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息,从而可以使得消息中心在接收到该第二完成消息时,将该第二完成消息分发至对应的消息订阅者,以使其他流程节点及时知晓第一流程节点的操作已完成;或者
若所述第一流程节点的操作执行异常,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息,其中,操作执行异常可以是内存不足、程序中断等造成操作不可继续执行的异常;或者
若所述第一流程节点不可执行,则将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
其中,在上文中已经详细描述的第一流程节点对应的执行条件,则在不满足第一流程节点的执行条件时,确定第一流程节点不可执行,如图2所示,若第一流程节点为流程节点I,则流程节点I的前置节点为一个,且该前置节点为判断节点K,则在判断节点K的判定结果为TURE时,由于流程节点I为判定结果FALSE对应的流程节点,则其不满足其前置节点的判定结果,流程节点I不可执行,则其状态更新为禁止执行状态。
又如,若第一流程节点为流程节点H,流程节点H对应的前置节点中不存在状态为完成态的前置节点(其前置节点为流程节点I,且流程节点I的状态为禁止执行状态),则流程节点H不可执行,则其状态更新为禁止执行状态。
在上述技术方案中,根据第一流程节点的操作的不同执行结果,更新该第一流程节点的状态,一方面,可以为后续流程节点的解析提供数据支持,另一方面,可以及时更新该第一流程节点的状态,便于后续流程的回溯以及流程节点异常处理排查。
可选地,所述确定所述第一流程节点的全部前置节点的操作是否都已完成,包括:
遍历所述第一流程节点的全部前置节点的状态;
如图2示例,第一流程节点为流程节点E时,初始化时确定出的流程节点E的前置节点为A、B、C。
其中,遍历所述第一流程节点的全部前置节点的状态可以通过如下方式遍历:
选择任一前置节点作为当前遍历的前置节点,确定该当前遍历的前置节点的状态。示例地,当前遍历的前置节点为流程节点A。
若该当前遍历的前置节点的状态为完成态或禁止执行状态,则从未遍历的前置节点中选择一个作为当前遍历的前置节点,重新执行上述步骤。示例地,流程节点A的状态为完成态,则从流程节点B、C中选择一节点作为当前遍历的前置节点,如流程节点C,则在确定流程节点C的状态为完成态时,将流程节点B作为当前遍历的前置节点。
若该当前遍历的前置节点的状态不是完成态,也不是禁止执行状态,则遍历结束。
示例地,若流程节点B的状态为运行态,表示流程节点B对应的操作正在执行,此时遍历结束。
在遍历结束后,可以通过上述遍历到的状态确定第一流程节点的全部前置节点的操作是否都已完成,如下:
在所述第一流程节点的全部前置节点中,若全部前置节点均为完成态,或者均为禁止执行状态,或者一部分前置节点为完成态而另一部分前置节点为禁止执行状态,则确定所述第一流程节点的全部前置节点的操作都已完成。
可选地,若在遍历所述第一流程节点的全部前置节点的状态结束后,存在未遍历到的前置节点,或遍历的前置节点的状态不为完成态也不为禁止执行状态,可以直接确定所述第一流程节点的全部前置节点的操作尚未全部完成。
如上述示例,在遍历结束时,流程节点A、B、C均已遍历,确定流程节点A和C的状态为完成态,流程节点B的状态为运行态,则可以确定第一流程节点E的全部前置节点的操作尚未全部完成。
若上述示例中流程节点B的状态为完成态,则在流程节点E的全部前置节点均为完成态,此时则可以确定第一流程节点E的全部前置节点的操作都已完成。
通过上述技术方案,通过遍历第一流程节点的各个前置节点的状态以确定第一流程节点的全部前置节点的操作是否都已完成,从而确定该第一流程节点是否可以被触发,保证流程中各个流程节点之间的准确流转,保证流程解析的效率和准确度。
可选地,所述消息订阅者还包括流程实例,以便所述流程实例在接收到结束节点或异常终止的流程节点的完成消息后确定流程解析结束。
其中,异常终止的流程节点为在流程执行的过程中出现异常的节点,可以通过访问流程节点的状态确定该流程节点是否是异常终止的节点。
示例地,流程实例在接收到完成消息时,可以通过该完成消息包括的标识信息确定发布该完成消息的节点是否为结束节点,若是结束节点此时可以确定流程解析结束。若不是结束节点,则可以进一步确定发布该完成消息的节点的状态,若状态为完成态或禁止执行状态,表示当前流程正常流转且尚未结束,此时,可以直接忽略该完成消息,若状态为异常终止状态,则表示当前流程尚未执行完,但中间过程中出现了异常执行的节点,此时该流程执行异常,也需要确定流程解析结束。由此,可以及时确定流程解析的状态,提高流程解析方法的容错能力,增加流程拓扑的灵活性,进一步提升用户使用体验。
更进一步地,在流程实例根据异常终止的流程节点的完成消息确定流程解析结束后,可以输出一提示消息,以提示用户流程执行出现异常,便于后续异常排查。
本公开还提供一种流程解析装置,如图3所示,所述装置10包括:
接收模块100,用于接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息;
确定模块200,用于在根据所述第二流程节点的标识信息,确定所述第二流程节点为所述第一流程节点的前置节点的情况下,确定所述第一流程节点的全部前置节点的操作是否都已完成;
执行模块300,用于在所述第一流程节点的全部前置节点的操作都已完成、且满足所述第一流程节点的执行条件的情况下,则执行所述第一流程节点的操作。
可选地,所述装置还包括:
发送模块,用于在所述第一流程节点的全部前置节点的操作都已完成的情况下,向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
可选地,所述装置还包括:
第一处理模块,用于在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息;或者
第二处理模块,用于在所述第一流程节点的操作执行异常的情况下,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息;或者
第三处理模块,用于在所述第一流程节点不可执行的情况下,将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
可选地,所述确定模块包括:
遍历子模块,用于遍历所述第一流程节点的全部前置节点的状态;
确定子模块,用于在所述第一流程节点的全部前置节点中,若全部前置节点均为完成态,或者均为禁止执行状态,或者一部分前置节点为完成态而另一部分前置节点为禁止执行状态,则确定所述第一流程节点的全部前置节点的操作都已完成。
可选地,所述消息订阅者还包括流程实例,以便所述流程实例在接收到结束节点或异常终止的流程节点的完成消息后确定流程解析结束。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种电子设备700的框图。如图4所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的流程解析方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的流程解析方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的流程解析方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的流程解析方法。
图5是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图5,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的流程解析方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的流程解析方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的流程解析方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的流程解析方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (8)
1.一种流程解析方法,其特征在于,所述方法包括:
第一流程节点接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息,消息订阅者通过向所述消息中心发送订阅消息以从所述消息中心订阅完成消息;
若根据所述第二流程节点的标识信息,确定所述第二流程节点为所述第一流程节点的前置节点,则确定所述第一流程节点的全部前置节点的操作是否都已完成;
若所述第一流程节点的全部前置节点的操作都已完成、且满足所述第一流程节点的执行条件,则执行所述第一流程节点的操作;
若所述第一流程节点的全部前置节点的操作都已完成,则向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息;或者
若所述第一流程节点的操作执行异常,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息;或者
若所述第一流程节点不可执行,则将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
3.根据权利要求1所述的方法,其特征在于,所述确定所述第一流程节点的全部前置节点的操作是否都已完成,包括:
遍历所述第一流程节点的全部前置节点的状态;
在所述第一流程节点的全部前置节点中,若全部前置节点均为完成态,或者均为禁止执行状态,或者一部分前置节点为完成态而另一部分前置节点为禁止执行状态,则确定所述第一流程节点的全部前置节点的操作都已完成。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述消息订阅者还包括流程实例,以便所述流程实例在接收到结束节点或异常终止的流程节点的完成消息后确定流程解析结束。
5.一种流程解析装置,其特征在于,所述装置包括:
接收模块,用于接收消息中心发送的第一完成消息,所述第一完成消息包括操作完成的第二流程节点的标识信息,所述消息中心用于将来自于消息发布者的完成消息发送至该完成消息对应的消息订阅者,其中,来自于所述消息发布者的所述完成消息包括所述消息发布者的标识信息,消息订阅者通过向所述消息中心发送订阅消息以从所述消息中心订阅完成消息;
确定模块,用于在根据所述第二流程节点的标识信息,确定所述第二流程节点为第一流程节点的前置节点的情况下,确定所述第一流程节点的全部前置节点的操作是否都已完成;
执行模块,用于在所述第一流程节点的全部前置节点的操作都已完成、且满足所述第一流程节点的执行条件的情况下,则执行所述第一流程节点的操作;
发送模块,用于在所述第一流程节点的全部前置节点的操作都已完成的情况下,向所述消息中心发送订阅结束消息,所述订阅结束消息包括所述第一流程节点的标识信息,所述订阅结束消息用于所述消息中心取消所述第一流程节点的消息订阅者身份。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第一处理模块,用于在执行完所述第一流程节点的操作后,将所述第一流程节点的状态更新为完成态,并向所述消息中心发送第二完成消息;或者
第二处理模块,用于在所述第一流程节点的操作执行异常的情况下,将所述第一流程节点的状态更新为异常终止状态,并向所述消息中心发送第二完成消息;或者
第三处理模块,用于在所述第一流程节点不可执行的情况下,将所述第一流程节点的状态更新为禁止执行状态,并向所述消息中心发送第二完成消息,其中,所述第二完成消息包括所述第一流程节点的标识信息。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910784861.6A CN110599005B (zh) | 2019-08-23 | 2019-08-23 | 流程解析方法、装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910784861.6A CN110599005B (zh) | 2019-08-23 | 2019-08-23 | 流程解析方法、装置、计算机可读存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110599005A CN110599005A (zh) | 2019-12-20 |
CN110599005B true CN110599005B (zh) | 2023-01-31 |
Family
ID=68855324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910784861.6A Active CN110599005B (zh) | 2019-08-23 | 2019-08-23 | 流程解析方法、装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110599005B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197920A (zh) * | 2013-03-25 | 2013-07-10 | 华为技术有限公司 | 一种并发控制方法、控制节点及*** |
JP2014021778A (ja) * | 2012-07-19 | 2014-02-03 | Mitsubishi Electric Corp | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2420842C (en) * | 2002-03-06 | 2010-05-11 | Nippon Telegraph And Telephone Corporation | Upper layer node, lower layer node, and node control method |
CN102143041B (zh) * | 2010-07-02 | 2014-03-26 | 华为技术有限公司 | 一种网络流量分担的方法、装置及*** |
CN103530740B (zh) * | 2013-10-25 | 2019-01-01 | 金蝶软件(中国)有限公司 | 一种对任务流程进行节点控制的方法及装置 |
CN104573965A (zh) * | 2015-01-19 | 2015-04-29 | 浪潮软件股份有限公司 | 一种基于并联的前置后置关系的流转方法及装置 |
CN109104306A (zh) * | 2018-07-26 | 2018-12-28 | 东软集团股份有限公司 | 流程解析方法、装置、计算机可读存储介质及电子设备 |
CN109165931A (zh) * | 2018-09-25 | 2019-01-08 | 阿里巴巴集团控股有限公司 | 项目流程管理方法及装置 |
-
2019
- 2019-08-23 CN CN201910784861.6A patent/CN110599005B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014021778A (ja) * | 2012-07-19 | 2014-02-03 | Mitsubishi Electric Corp | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
CN103197920A (zh) * | 2013-03-25 | 2013-07-10 | 华为技术有限公司 | 一种并发控制方法、控制节点及*** |
Also Published As
Publication number | Publication date |
---|---|
CN110599005A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200073710A1 (en) | Task scheduling method, apparatus, electronic device and storage medium | |
US10241847B2 (en) | Anomaly detection using sequences of system calls | |
CN109725950B (zh) | 一种实现客户端单实例运行的方法、装置及存储介质 | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
US20160283879A1 (en) | Dynamic construction of cloud services | |
CN109412967B (zh) | 基于令牌的***流控方法、装置、电子设备、存储介质 | |
CN110471718B (zh) | 一种任务处理方法及设备 | |
CN107133741B (zh) | 待办任务处理方法、装置、可读存储介质及电子设备 | |
CN113872951B (zh) | 混合云安全策略下发方法、装置、电子设备和存储介质 | |
CN109327499B (zh) | 业务接口的管理方法及装置、存储介质、终端 | |
CN110930110B (zh) | 分布式流程监控方法、装置、存储介质及电子设备 | |
CN110599005B (zh) | 流程解析方法、装置、计算机可读存储介质和电子设备 | |
US10165118B1 (en) | Intelligent context aware contact workflow engine manager | |
CN106933932B (zh) | 数据处理方法、装置及应用服务器 | |
CN110928630A (zh) | 应用程序窗口的激活控制方法、装置、设备及存储介质 | |
CN114063606B (zh) | Plc协议模糊测试方法及装置、电子设备、存储介质 | |
CN105763365A (zh) | 一种异常处理方法及装置 | |
CN111080250B (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
US20180260303A1 (en) | Method and device for determining usage log | |
CN110825461A (zh) | 数据处理方法和装置 | |
CN113176931B (zh) | 任务流处理方法、装置、存储介质及电子设备 | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库***及存储介质 | |
CN114564286A (zh) | 一种规则引擎告警方法及规则引擎告警*** | |
CN108288135B (zh) | ***兼容方法及装置、计算机可读存储介质及电子设备 | |
CN108021407B (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 |