System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 工作流处理方法、装置、设备、存储介质和程序产品制造方法及图纸_技高网

工作流处理方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:40538953 阅读:6 留言:0更新日期:2024-03-05 18:53
本申请涉及一种工作流处理方法、装置、计算机设备、存储介质和计算机程序产品。该方法包括:获取待执行的与目标工作流对应的任务实例;根据任务实例的多个子任务实例之间的指向关系,依次加载并执行各子任务实例;在依次加载并执行各子任务实例的过程中,若当前加载到信号回调类型的目标子任务实例,则生成与目标子任务实例对应的回调接口,暂停加载并执行任务实例的子任务实例,直至回调接口被调用后,从目标子任务实例开始,恢复加载并执行任务实例的子任务实例。采用本方法能够提高运行资源的利用效率。

【技术实现步骤摘要】

本申请涉及计算机,特别是涉及一种工作流处理方法、装置、系统、计算机设备、存储介质和计算机程序产品。


技术介绍

1、低代码是一种直观的可视化软件开发方法,能够给专业开发人员和业务人员提供快速创建应用程序的平台,该平台可作为工作流引擎系统实现工作流的自动化。通常,工作流引擎通过可视化拖拽各种子任务的方式设计整个工作流的流程,以实现编程中的各种代码特性,降低编程开发成本。

2、目前,在执行设计好的工作流时,工作流引擎一次性加载并执行工作流的整个任务实例,如果工作流中存在需要跟第三方系统交互的耗时子任务,例如向第三方系统轮询查询结果等,会导致工作流的整个任务实例长时间占用执行设备的内存资源,并消耗工作流引擎的整体运行资源,资源利用效率较低。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够提高资源利用效率的工作流处理方法、装置、系统、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本申请提供了一种工作流处理方法。所述方法包括:

3、获取待执行的与目标工作流对应的任务实例;

4、根据所述任务实例的流程数据结构,确定所述任务实例的多个子任务实例之间的指向关系,从所述任务实例的首个子任务实例开始,依次根据所述指向关系加载并执行各所述子任务实例;

5、若当前加载到信号回调类型的目标子任务实例,则生成与所述目标子任务实例对应的回调接口,并暂停加载并执行所述任务实例的子任务实例;

6、当所述目标子任务实例对应的回调接口被调用后,从所述目标子任务实例开始,恢复加载并执行所述任务实例的子任务实例。

7、第二方面,本申请还提供了一种工作流的处理装置。所述装置包括:

8、获取模块,用于获取待执行的与目标工作流对应的任务实例;

9、执行模块,用于根据所述任务实例的流程数据结构,确定所述任务实例的多个子任务实例之间的指向关系,从所述任务实例的首个子任务实例开始,依次根据所述指向关系加载并执行各所述子任务实例;

10、所述执行模块,还用于若当前加载到信号回调类型的目标子任务实例,则生成与所述目标子任务实例对应的回调接口,并暂停加载并执行所述任务实例的子任务实例;当所述目标子任务实例对应的回调接口被调用后,从所述目标子任务实例开始,恢复加载并执行所述任务实例的子任务实例。

11、在一个实施例中,获取模块,还用于当触发关于所述目标工作流的执行指令时,在数据库的任务实例表中,创建与所述目标工作流对应的任务实例;所述任务实例表用于记录任务实例标识、所述任务实例的流程数据结构,所述流程数据结构中包括子任务实例标识以及各所述子任务实例之间的指向关系;推送创建的所述任务实例的任务实例标识至任务实例消息队列;从任务实例消息队列中,消费任务实例标识;根据所述任务实例标识,确定待执行的任务实例。

12、在一个实施例中,所述装置还包括触发执行模块,用于若所述目标工作流的首个子任务为网络钩子触发器,则当接收到对所述目标工作流的触发地址发起的网络请求时,触发关于所述目标工作流的执行指令;其中,所述目标工作流的触发地址,是在创建所述目标工作流时,使用网络钩子触发器作为所述目标工作流的首个子任务的情况下,根据为所述网络钩子触发器分配的令牌生成的。

13、在一个实施例中,所述装置还包括触发执行模块,用于若所述目标工作流的首个子任务为指令触发器时,则当通过指令回调接口接收到目标应用发送的关于所述目标工作流的触发指令时,触发关于所述目标工作流的执行指令;其中,所述目标工作流的触发指令,是在创建所述目标工作流时,使用指令触发器作为所述目标工作流的首个子任务的情况下,为所述指令触发器配置的。

14、在一个实施例中,所述触发执行模块,还用于在以第一账号登录的目标应用,接收到第二账号发送的会话消息后,通过指令回调接口,接收所述目标应用所转发的所述会话消息,从所述会话消息中获取触发指令与执行参数,确定与所述触发指令对应的目标工作流,根据所述执行参数触发关于所述目标工作流的执行指令;其中,所述第一账号在注册时被配置为用于将接收到的会话消息转发至所述指令回调接口。

15、在一个实施例中,所述触发执行模块,还用于校验发送所述会话消息的第二账号对所述触发指令是否存在执行权限;校验通过时,根据所述执行参数触发关于所述目标工作流的执行指令;其中,所述触发指令的执行权限的授权账号,是在创建所述目标工作流时,使用指令触发器作为所述目标工作流的首个子任务的情况下,为所述指令触发器配置的。

16、在一个实施例中,所述装置还包括触发执行模块,用于若所述目标工作流的首个子任务为定时触发器时,则当满足为所述目标工作流配置的触发时间时,触发关于所述目标工作流的执行指令;其中,所述目标工作流的触发时间,是在创建所述目标工作流时,使用定时触发器作为所述目标工作流的首个子任务的情况下,为所述定时触发器配置的。

17、在一个实施例中,所述执行模块,还用于将首个子任务实例相应的子任务实例标识,推送至子任务实例消息队列;从所述子任务实例消息队列,消费子任务实例标识;根据所述子任务实例标识,加载并执行当前的子任务实例;在执行完当前的子任务实例后,确定当前的子任务实例指向的子任务实例;将所述指向的子任务实例相应的子任务实例标识,推送至子任务实例消息队列后,继续从所述子任务实例消息队列中,消费子任务实例标识,直至所述任务实例的子任务实例全部执行完成。

18、在一个实施例中,所述执行模块还用于在所述当前的子任务实例指向多个子任务实例的情况下,将所述指向的多个子任务实例各自的子任务实例标识,均推送至子任务实例消息队列;通过分布式的执行节点,从所述子任务实例消息队列中,消费所述多个子任务实例标识后,并发地加载并执行相应的多个子任务实例。

19、在一个实施例中,所述执行模块还用于在确定当前的子任务实例指向的子任务实例之后,将所述指向的子任务实例持久化至数据库的子任务实例表;所述子任务实例表用于记录子任务实例标识、子任务实例的运行状态以及执行数据;初始化所述子任务实例的运行状态为未处理;在执行完所述子任务实例后,在所述子任务实例表中,更新所述子任务实例的运行状态为已完成,以及更新所述子任务实例的执行数据。

20、在一个实施例中,所述执行模块还用于解析所述任务实例,得到所包括的各个子任务实例的全局变量,形成全局变量表并存储;所述全局变量包括全局输入变量与全局输出变量;在执行完当前的子任务实例后,根据相应的执行数据更新所述全局变量表;加载更新的全局变量表,获得所述指向的子任务实例的全局输入变量对应的输入数据,根据所述输入数据执行所述指向的子任务实例。

21、在一个实施例中,所述执行模块还用于若当前从子任务实例消息队列中消费到信号回调类型的目标子任务实例,且未为所述目标子任务实例生成相应的回调接口的情况下,生成与所述目标子任务实例对应的回调接口,等待所述回调接口的调用,在本文档来自技高网...

【技术保护点】

1.一种工作流处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取待执行的与目标工作流对应的任务实例,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述当通过指令回调接口接收到目标应用发送的关于所述目标工作流的触发指令时,触发关于所述目标工作流的执行指令,包括:

6.根据权利要求5所述的方法,其特征在于,所述根据所述执行参数触发关于所述目标工作流的执行指令之前,所述方法还包括:

7.根据权利要求2所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1所述的方法,其特征在于,所述根据所述任务实例的流程数据结构,确定所述任务实例的多个子任务实例之间的指向关系,从所述任务实例的首个子任务实例开始,依次根据所述指向关系加载并执行各所述子任务实例,包括:

9.根据权利要求8所述的方法,其特征在于,所述将所述指向的子任务实例相应的子任务实例标识,推送至子任务实例消息队列,包括:

10.根据权利要求8所述的方法,其特征在于,所述方法还包括:

11.根据权利要求8所述的方法,其特征在于,所述方法还包括:

12.根据权利要求8所述的方法,其特征在于,所述若当前加载到信号回调类型的目标子任务实例,则生成与所述目标子任务实例对应的回调接口,并暂停加载并执行所述任务实例的子任务实例,当所述目标子任务实例对应的回调接口被调用后,从所述目标子任务实例开始,恢复加载并执行所述任务实例的子任务实例,包括:

13.一种工作流处理装置,其特征在于,所述装置包括:

14.一种工作流处理系统,其特征在于,所述系统包括调度节点、分布式的执行节点和数据库,其中:

15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。

16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。

17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种工作流处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取待执行的与目标工作流对应的任务实例,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述当通过指令回调接口接收到目标应用发送的关于所述目标工作流的触发指令时,触发关于所述目标工作流的执行指令,包括:

6.根据权利要求5所述的方法,其特征在于,所述根据所述执行参数触发关于所述目标工作流的执行指令之前,所述方法还包括:

7.根据权利要求2所述的方法,其特征在于,所述方法还包括:

8.根据权利要求1所述的方法,其特征在于,所述根据所述任务实例的流程数据结构,确定所述任务实例的多个子任务实例之间的指向关系,从所述任务实例的首个子任务实例开始,依次根据所述指向关系加载并执行各所述子任务实例,包括:

9.根据权利要求8所述的方法,其特征在于,所述将所述指向的子任务实例相应的子任务实例标识,推送至子任务实例消息队列,包括:

10.根据权...

【专利技术属性】
技术研发人员:温冠超
申请(专利权)人:腾讯云计算北京有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1