流程引擎的指令调度方法及装置制造方法及图纸

技术编号:14397472 阅读:47 留言:0更新日期:2017-01-11 11:20
本公开涉及一种流程引擎的指令调度方法及装置。所述流程引擎包括多个子线程池,所述指令调度方法包括:将输入的流程指令解析为多个子操作指令;根据执行子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;控制当前子线程池分配线程,以执行当前子操作指令;在当前子操作指令执行完毕后,释放当前子线程池分配的线程;将下一个子操作指令分配到对应的子线程池中以执行下一个子操作指令,直至所有的子操作指令执行完毕。本公开解决了由于现有的流程引擎只存在一个线程池中,流程引擎操作复杂导致线程资源长时间得不到释放,无法响应更多引擎操作的问题。

【技术实现步骤摘要】

本公开涉及计算机领域,具体地,涉及一种流程引擎的指令调度方法及装置
技术介绍
随着企业信息化的快速发展,业务流程管理(BusinessProcessManagement,简称BPM)在信息化过程中的作用越来越突出。流程引擎是一种计算机化的标识模型,是能够完全或者部分自动执行经营过程的有限状态机,其作用是根据一系列过程规则,文档、信息或任务在不同的执行者之间进行传递与执行。流程引擎有很多操作指令,有的操作较为复杂,有的操作相对简单,由于现有引擎都是一个线程池,引擎会不加区分的获取一个线程,然后按照不同的指令进行解释执行,这会导致如果有大量的复杂操作且在高并发情况下,流程引擎的线程池长时间占用无法释放,流程引擎无法响应更多的服务请求。另外由于执行周期过长,无法有效定位性能瓶颈点,从而不能有针对性的解决某个长逻辑的性能问题。
技术实现思路
本公开的目的是提供一种流程引擎的指令调度方法及装置,用于解决由于现有的流程引擎只存在一个线程池中,流程引擎操作复杂导致线程资源长时间得不到释放,无法响应更多引擎操作的问题。为了实现上述目的,本公开提供一种流程引擎的指令调度方法,所述流程引擎包括多个子线程池,所述指令调度方法包括:将输入的流程指令解析为多个子操作指令;根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;控制所述当前子线程池分配线程,以执行所述当前子操作指令;在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程;将下一个所述子操作指令分配到对应的所述子线程池中以执行下一个所述子操作指令,直至所有的所述子操作指令执行完毕。可选地,所述流程引擎还包括与所述子线程池一一对应的子操作缓冲池;所述将当前子操作指令分配到对应的当前子线程池中,包括:将所述当前子操作指令分配到所述当前子线程池对应所述子操作缓冲池中;在执行所述当前子操作指令时,将所述当前子操作指令从对应的所述子操作缓冲池分配到所述当前子线程池中。可选地,所述在所述当前子操作指令执行完毕后,所述指令调度方法还包括:确定下一个所述子操作指令所对应的所述子操作缓冲池。可选地,所述流程引擎还包括多级实例对象;所述将输入的流程指令解析为多个子操作指令,包括:将所述流程指令分解为所述多级实例对象所对应的所述子操作指令。可选地,所述控制当前子操作指令所对应的当前子线程池分配线程之前,所述指令调度方法还包括:将所述多级实例对象所对应的所述子操作指令串联起来,形成逻辑链条;根据所述逻辑链条,确定所述子操作指令的先后顺序。可选地,所述指令调度方法还包括:在执行所述当前子操作指令时,监控所述当前子线程池中是否有空闲状态线程;当所述当前子线程池中有所述空闲状态线程时,释放所述空闲状态线程。本公开还提供了一种流程引擎的指令调度装置,所述流程引擎包括多个子线程池,所述指令调度装置包括:解析模块,用于将输入的流程指令解析为多个子操作指令;分配模块,用于根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;控制模块,用于控制所述当前子线程池分配线程,以执行所述当前子操作指令;第一释放模块,用于在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程;执行模块,用于将下一个所述子操作指令分配到对应的所述子线程池中以执行下一个所述子操作指令,直至所有的所述子操作指令执行完毕。可选地,所述流程引擎还包括与所述子线程池一一对应的子操作缓冲池;所述分配模块包括:第一分配子模块,用于将所述当前子操作指令分配到所述当前子线程池对应所述子操作缓冲池中;第二分配子模块,用于在执行所述当前子操作指令时,将所述当前子操作指令从对应的所述子操作缓冲池分配到所述当前子线程池中。可选地,所述指令调度装置还包括:第一确定模块,用于在所述当前子操作指令执行完毕后,确定下一个所述子操作指令所对应的所述子操作缓冲池。可选地,所述流程引擎还包括多级实例对象;所述解析模块用于将所述流程指令分解为所述多级实例对象所对应的所述子操作指令。可选地,所述指令调度装置还包括:串联模块,用于将所述多级实例对象所对应的所述子操作指令串联起来,形成逻辑链条;第二确定模块,用于根据所述逻辑链条,确定所述子操作指令的先后顺序。可选地,所述指令调度装置还包括:监控模块,用于在执行所述当前子操作指令时,监控所述当前子线程池中是否有空闲状态线程;第二释放模块,用于当所述当前子线程池中有空闲状态线程时,释放所述空闲状态线程。本公开的实施例提供的技术方案可以包括以下有益效果:本公开通过将解析后的多个子操作指令,根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中,并控制所述当前子线程池分配线程,以执行所述当前子操作指令,以及在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程。因此,每执行一个子操作指令后,分配给该子操作指令的所述线程就会被释放,以供其它的流程指令使用,提高了流程引擎的工作效率,解决了由于现有的流程引擎只存在一个线程池中,流程引擎操作复杂导致线程资源长时间得不到释放,无法响应更多引擎操作的问题。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是根据一示例性实施例示出的一种流程引擎的指令调度方法的流程图。图2是根据一示例性实施例示出的一种流程引擎的指令调度方法包括的步骤中将子操作指令分配到子线程池的流程图。图3是根据一示例性实施例示出的一种流程引擎的指令调度方法的另一流程图。图4是根据一示例性实施例示出的一种流程引擎的指令调度方法的另一流程图。图5是根据一示例性实施例示出的一种流程引擎的指令调度方法的示意图。图6是根据一示例性实施例示出的一种流程引擎的指令调度装置的框图。图7是根据一示例性实施例示出的一种流程引擎的指令调度装置的分配模块的框图。图8是根据一示例性实施例示出的一种流程引擎的指令调度装置的另一框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。图1是根据一示例性实施例示出的一种流程引擎的指令调度方法的流程图,所述流程引擎包括多个子线程池,如图1所示,流程引擎的指令调度方法包括以下步骤。在步骤S11中,将输入的流程指令解析为多个子操作指令。在步骤S12中,根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;所述当前子操作指令为当前执行的所述子操作指令。在步骤S13中,控制所述当前子线程池分配线程,以执行所述当前子操作指令。在步骤S14中,在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程。在步骤S15中,将下一个所述子操作指令分配到对应的所述子线程池中以执行下一个所述子操作指令,直至所有的所述子操作指令执行完毕。本公开流程引擎的指令调度方法可以用在电子设备中本文档来自技高网...
流程引擎的指令调度方法及装置

【技术保护点】
一种流程引擎的指令调度方法,其特征在于,所述流程引擎包括多个子线程池,所述指令调度方法包括:将输入的流程指令解析为多个子操作指令;根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;控制所述当前子线程池分配线程,以执行所述当前子操作指令;在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程;将下一个所述子操作指令分配到对应的所述子线程池中以执行下一个所述子操作指令,直至所有的所述子操作指令执行完毕。

【技术特征摘要】
1.一种流程引擎的指令调度方法,其特征在于,所述流程引擎包括多个子线程池,所述指令调度方法包括:将输入的流程指令解析为多个子操作指令;根据执行所述子操作指令的先后顺序,将当前子操作指令分配到对应的当前子线程池中;控制所述当前子线程池分配线程,以执行所述当前子操作指令;在所述当前子操作指令执行完毕后,释放所述当前子线程池分配的所述线程;将下一个所述子操作指令分配到对应的所述子线程池中以执行下一个所述子操作指令,直至所有的所述子操作指令执行完毕。2.根据权利要求1所述的指令调度方法,其特征在于,所述流程引擎还包括与所述子线程池一一对应的子操作缓冲池;所述将当前子操作指令分配到对应的当前子线程池中,包括:将所述当前子操作指令分配到所述当前子线程池对应所述子操作缓冲池中;在执行所述当前子操作指令时,将所述当前子操作指令从对应的所述子操作缓冲池分配到所述当前子线程池中。3.根据权利要求2所述的指令调度方法,其特征在于,所述在所述当前子操作指令执行完毕后,所述指令调度方法还包括:确定下一个所述子操作指令所对应的所述子操作缓冲池。4.根据权利要求1所述的指令调度方法,其特征在于,所述流程引擎还包括多级实例对象;所述将输入的流程指令解析为多个子操作指令,包括:将所述流程指令分解为所述多级实例对象所对应的所述子操作指令。5.根据权利要求4所述的指令调度方法,其特征在于,所述控制所述当前子线程池分配线程之前,所述指令调度方法还包括:将所述多级实例对象所对应的所述子操作指令串联起来,形成逻辑链条;根据所述逻辑链条,确定所述子操作指令的先后顺序。6.根据权利要求1所述...

【专利技术属性】
技术研发人员:赵振国纪勇
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1