一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

业务进程调度方法、装置、电子设备以及存储介质与流程

2021-11-10 02:11:00 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,更具体地,涉及一种业务进程调度方法、装置、电子设备以及存储介质。


背景技术:

2.在复杂的多进程环境中,合理的业务进程调度方法显得尤为重要。通常,对于流程性较强的多个业务进程,可以采用链式结构进行进程调度。即根据业务逻辑由上一业务进程的完成事件作为触发条件,触发下一业务进程被执行。
3.在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:链式结构的调度方法会造成业务进程的执行流程与业务逻辑耦合。当任一业务进程的执行过程中出现异常时,执行流程与业务逻辑之间的耦合度会增加调度的困难。


技术实现要素:

4.有鉴于此,本公开提供了一种业务进程调度方法和装置。
5.本公开的一个方面提供了一种业务进程调度方法,包括:获取至少一个业务进程;为所述至少一个业务进程分别设置对应的流程节点;根据所述至少一个业务进程之间的执行逻辑,分别依次通过所述流程节点调度对应的业务进程,使所述业务进程依次被执行;以及在确定业务进程出现执行异常的情况下,通过所述业务进程对应的流程节点重新调度所述业务进程,使出现执行异常的业务进程被重新执行。
6.根据本公开的实施例,所述至少一个业务进程包括n个业务进程,n为大于等于2的整数;所述根据所述至少一个业务进程之间的执行逻辑,分别依次通过所述流程节点调度对应的业务进程,使所述业务进程依次被执行,包括:根据所述n个业务进程之间的执行逻辑,通过所述n个业务进程中的第i业务进程对应的第i流程节点向所述第i业务进程发送调度消息,i∈[1,n);根据所述调度消息,执行所述第i业务进程,得到第i执行结果;将所述第i执行结果发送到所述第i流程节点;以及在确定所述第i执行结果为执行成功的情况下,根据所述n个业务进程之间的执行逻辑,通过所述第i 1业务进程对应的第i 1流程节点向所述第i 1业务进程发送调度消息。
[0007]
根据本公开的实施例,所述业务进程包括任务创建进程;所述通过所述流程节点调度对应的业务进程,包括:通过所述任务创建进程对应的流程节点向所述任务创建进程发送创建指令;所述流程节点获取由所述任务创建进程基于所述创建指令创建的至少一个任务和创建结果;以及在缓存中存储所述至少一个任务,以及在数据库中存储所述创建结果。
[0008]
根据本公开的实施例,所述业务进程还包括任务执行进程;所述通过所述流程节点调度对应的业务进程还包括:在所述缓存中存储所述至少一个任务后,在所述缓存中为所述至少一个任务创建对应的结果对象,所述结果对象用于记录所述至少一个任务对应数量的执行结果;以及通过所述任务执行进程对应的流程节点监控所述结果对象,以获得执
行结果。
[0009]
根据本公开的实施例,所述方法还包括:获取所述业务进程的执行结果;以及向所述业务进程对应的流程节点发送所述执行结果,以提示用户通过所述流程节点查看所述执行结果。
[0010]
根据本公开的实施例,所述的方法,还包括,在所述根据所述至少一个业务进程之间的执行逻辑,分别依次通过所述流程节点调度对应的业务进程,使所述业务进程依次被执行之前:分别获取每个流程节点的流程id;以及通过所述流程id对所述流程节点执行去重操作。
[0011]
根据本公开的实施例,所述分别依次通过所述流程节点调度对应的业务进程,包括:所述流程节点通过远程过程调用接口调度对应的业务进程。
[0012]
本公开的另一个方面提供了一种业务进程调度装置,包括:第一获取模块,用于获取至少一个业务进程;设置模块,用于为所述至少一个业务进程分别设置对应的流程节点;调度模块,用于根据所述至少一个业务进程之间的执行逻辑,分别依次通过所述流程节点调度对应的业务进程,使所述业务进程依次被执行;以及确定模块,用于在确定业务进程出现执行异常的情况下,通过所述业务进程对应的流程节点重新调度所述业务进程,使出现执行异常的业务进程被重新执行。
[0013]
本公开的另一方面提供了一种电子设备,所述电子设备包括一个或多个处理器;以及存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求上述任一项所述的方法。
[0014]
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0015]
根据本公开的实施例,因为采用了为业务进程设置相应的流程节点的技术手段,所以至少部分地克服了由于业务进程的执行流程与业务逻辑相耦合而造成的调度困难的技术问题,进而达到了各业务进程可独立执行且简化调度方法的技术效果。
附图说明
[0016]
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0017]
图1示意性示出了可以应用本公开的业务进程调度的方法和装置的示例性系统架构;
[0018]
图2示意性示出了根据本公开实施例的业务进程调度的方法和装置的应用场景;
[0019]
图3示意性示出了根据本公开实施例的业务进程调度方法的流程图;
[0020]
图4a示意性示出了根据本公开实施例的流程节点调度业务进程的流程图;
[0021]
图4b示意性示出了根据本公开实施例的流程节点调度业务进程的原理图;
[0022]
图5示意性示出了根据本公开另一实施例的流程节点调度业务进程的流程图;
[0023]
图6示意性示出了根据本公开另一实施例的流程节点调度业务进程的流程图;
[0024]
图7示意性示出了根据本公开另一实施例的业务进程调度方法的流程图;
[0025]
图8示意性示出了根据本公开的实施例的业务进程调度装置的框图;以及
[0026]
图9示意性示出了根据本公开实施例的适于实现业务进程调度方法的电子设备的
框图。
具体实施方式
[0027]
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0028]
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0029]
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0030]
在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
[0031]
本公开的实施例提供了一种业务进程调度方法和装置。该方法包括获取至少一个业务进程。为至少一个业务进程分别设置对应的流程节点。根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行。以及在确定业务进程出现执行异常的情况下,通过业务进程对应的流程节点重新调度业务进程,使出现执行异常的业务进程被重新执行。
[0032]
图1示意性示出了根据本公开实施例的可以应用业务进程调度的方法和装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
[0033]
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
[0034]
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
[0035]
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0036]
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103
所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息或数据等)反馈给终端设备。
[0037]
需要说明的是,本公开实施例所提供的业务进程调度方法一般可以由服务器105执行。相应地,本公开实施例所提供的业务进程调度装置一般可以设置于服务器105中。本公开实施例所提供的业务进程调度方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的业务进程调度装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的业务进程调度装置也可以由终端设备101、102或103执行,或者也可以由不同于终端设备101、102或103的其他终端设备执行。相应地,本公开实施例所提供的业务进程调度装置也可以设置于终端设备101、102或103中,或设置于不同于终端设备101、102或103的其他终端设备中。
[0038]
例如,待处理的业务进程可以原本存储在终端设备101、102或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。然后,终端设备101可以在本地执行本公开实施例所提供的业务进程调度方法,或者将待处理的业务进程发送到其他终端设备、服务器或服务器集群,并由接收该待处理的业务进程的其他终端设备、服务器或服务器集群来执行本公开实施例所提供的业务进程调度方法。
[0039]
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0040]
图2示意性示出了根据本公开实施例的业务进程调度的方法和装置的应用场景。
[0041]
如图2所示,用户通过发送业务进程调度信息启动流程节点210,流程节点210依次驱动对应的业务进程220被执行,以完成业务进程的调度。流程节点210驱动业务进程220被执行的顺序与业务进程1、业务进程2、业务进程3和业务进程4之间的业务逻辑一致。业务进程调度信息包括业务进程的具体内容信息以及业务进程之间的业务逻辑信息。
[0042]
当执行某一业务进程出现异常时,由该业务进程对应的流程节点再次驱动该业务进程。例如,在业务进程2被成功执行后,流程节点3驱动业务进程3开始被执行。当业务进程3的执行过程中出现异常时,由流程节点3再次驱动业务进程3被执行,此时其他业务进程无需参与。
[0043]
图3示意性示出了根据本公开实施例的业务进程调度方法的流程图。
[0044]
如图3所示,该方法包括操作s301~s304。
[0045]
在操作s301,获取至少一个业务进程。
[0046]
一项需要执行的任务包括至少一个业务进程。例如,一项需要执行的任务可以包括任务创建进程、任务拆分进程、任务执行进程和执行结果处理进程。在上述四个业务进程全部被成功执行完后,该项任务可被认为被成功执行完成。
[0047]
本公开实施例不对业务进程的内容进行限制,业务进程的具体内容由实际需求而定。
[0048]
在操作s302,为至少一个业务进程分别设置对应的流程节点。
[0049]
每一个业务进程具有一个对应的流程节点,每个流程节点独立控制对应的业务进
程。例如,任务创建进程对应任务创建节点,任务拆分进程对应任务拆分节点,任务执行进程对应任务执行节点,以及执行结果处理进程对应执行结果处理节点。
[0050]
本领域技术人员可以理解,流程节点为已预先编码完成的由计算机程序实现的功能模块。根据业务进程的类型从多个以预先编码完成的流程节点中选择与业务进程相适配的流程节点,将该流程节点设置为该业务进程对应的流程节点。
[0051]
在操作s303,根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行。
[0052]
流程节点分别通过远程过程调用接口调度对应的业务进程。
[0053]
需要说明的是,在根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行之前,还需要对流程节点进行防重检测。
[0054]
一种对流程节点进行防重检测的示例方法可以包括分别获取每个流程节点的流程id。以及通过流程id对流程节点执行去重操作。例如,通过流程id对流程节点进行幂等性校验,避免因为重复的流程节点导致业务进程的执行异常。
[0055]
在操作s304,在确定业务进程出现执行异常的情况下,通过业务进程对应的流程节点重新调度业务进程,使出现执行异常的业务进程被重新执行。
[0056]
在本公开实施例中,由于各流程节点对对应的业务进程进行独立控制,使得各业务进程的执行也相互独立。在确定某一业务进程出现执行异常的情况下,通过该业务进程对应的流程节点重新调度该业务进程,而不依赖于其他流程节点和其他业务进程。
[0057]
需要说明的是,流程节点只通过远程过程调用接口调度对应的业务进程,并不参与该业务进程的内部执行逻辑。因此,流程节点可以与业务进程的执行地点位于同一终端或服务器,也可以位于不同的终端或服务器。不同的业务进程的执行地点可以位于同一终端或服务器中,也可以位于不同的终端或服务器中。
[0058]
通过本公开实施例,为每个业务进程设置对应的流程节点,业务进程的执行由对应的流程节点触发,而不是由存在业务逻辑关系的业务进程触发。此外,无需限制设置流程节点与业务进程执行地点的位置关系,实现了对业务进程的执行流程与业务逻辑的解耦,使各业务进程之间执行的业务逻辑互不影响。每个流程节点独立控制对应的业务进程,使业务执行过程清晰明了,便于排查执行异常等问题。
[0059]
下面参考图4a、图4b、图5、图6和图7,结合具体实施例对图3所示的方法做进一步说明。
[0060]
图4a示意性示出了根据本公开实施例的流程节点调度业务进程的流程图。
[0061]
如图4a所示,一种分别依次通过流程节点调度对应的业务进程的示例方法可以包括操作s431~s434。其中,至少一个业务进程包括n个业务进程,n为大于等于2的整数。
[0062]
在操作s431,根据n个业务进程之间的执行逻辑,通过n个业务进程中的第i业务进程对应的第i流程节点向第i业务进程发送调度消息,i∈[1,n)。
[0063]
在操作s432,根据调度消息,执行第i业务进程,得到第i执行结果。
[0064]
在操作s433,将第i执行结果发送到第i流程节点。
[0065]
在操作s434,在确定第i执行结果为执行成功的情况下,根据n个业务进程之间的执行逻辑,通过第i 1业务进程对应的第i 1流程节点向第i 1业务进程发送调度消息。
[0066]
在本公开实施例中,利用消息队列,流程节点向对应的业务进程位于的电子设备
(终端或服务器)中发送调度消息。各流程节点之间发送消息的顺序通过消息队列配置,根据配置顺序流程节点依次调度对应的业务进程,实现对业务进程的异步调度。
[0067]
结合图4b对调度方法进行进一步说明。图4b示意性示出了根据本公开实施例的流程节点调度业务进程的原理图。
[0068]
针对n个业务进程,通过第i业务进程对应的第i流程节点向第i业务进程发送调度消息,i∈[1,n)。
[0069]
当i=1时,通过第一流程节点向第一业务进程发送调度消息,调度第一业务进程。第一业务进程执行完成后,将执行结果发送到对应的流程节点。在确定该执行结果为执行成功的情况下,判断该第一业务进程是否为n个业务进程的最后一个业务进程。当该第一业务进程为n个业务进程的最后一个业务进程时,结束调度。当该第一业务进程不为n个业务进程的最后一个业务进程时,按照n个业务进程之间的执行逻辑,通过第一流程节点的下一流程节点,即第二流程节点,向第二业务进程发送调度消息,调度第二业务进程,直至n个业务进程被全部执行成功。
[0070]
通过本公开实施例,通过消息队列配置流程节点调度业务进程的顺序,并通过流程节点触发业务进程的执行,实现各业务进程之间的相互独立。此外,将业务进程的执行结果发送到对应的流程节点,通过流程节点可以获取到该业务进程的执行详情,实现了对各业务进程执行状态和执行进度的监控,便于获取业务进程整体执行信息。
[0071]
图5示意性示出了根据本公开另一实施例的流程节点调度业务进程的流程图。
[0072]
如图5所示,一种通过流程节点调度对应的业务进程的示例方法可以包括操作s531~s433。其中,业务进程包括任务创建进程。
[0073]
在操作s531,通过任务创建进程对应的流程节点向任务创建进程发送创建指令。
[0074]
在操作s532,流程节点获取由任务创建进程基于创建指令创建的至少一个任务和创建结果。
[0075]
在操作s533,在缓存中存储至少一个任务,以及在数据库中存储创建结果。
[0076]
在本公开实施例中,业务进程可以是任务创建进程。任务创建流程节点向任务创建进程发送任务创建指令,在任务创建进程被执行完成后,将执行结果发送给任务创建任务流程节点。
[0077]
任务流程创建流程节点只是向任务创建进程发送了任务创建指令,并不参与任务创建进程创建任务的过程。任务创建进程可以在创建流程节点所处的电子设备中执行,可以在其他电子设备中执行。在任务创建进程被成功执行后,任务流程创建流程节点获取任务创建进程的执行结果,可以包括创建的任务和创建结果。创建结果可以是创建成功或创建失败。
[0078]
由于在后续的业务进程的执行过程中需要频繁地获取和使用创建的任务,因此,可以将创建的任务存储在缓存中。此外,可以将不会被频繁使用的创建结果存储在数据库中。例如,创建的任务可以是以redis key

value格式被缓存,也可以是被缓存在mysql等数据库中。
[0079]
通过本公开实施例,根据使用频率,将业务进程的执行结果中使用频率大的数据存储在缓存中,将使用频率低的数据存储在数据库中。不同类型的数据存储在不同类型的数据库中,可以实现对特定数据的快速获取。同时,合理地分配存储空间,可以缓解缓存中
的存储压力,提高服务器的运算能力。
[0080]
图6示意性示出了根据本公开另一实施例的流程节点调度业务进程的流程图。
[0081]
如图6所示,一种通过流程节点调度对应的业务进程的示例方法还可以包括操作s631~s632。其中,业务进程还包括任务执行进程。
[0082]
在操作s631,在缓存中存储至少一个任务后,在缓存中为至少一个任务创建对应的结果对象,结果对象用于记录至少一个任务对应数量的执行结果。
[0083]
在操作s632,通过任务执行进程对应的流程节点监控结果对象,以获得执行结果。
[0084]
在本公开实施例中,业务进程还可以是任务执行进程。当业务进程为任务创建执行进程时,创建了至少一个任务。当任务的数量为多个时,为确保每个任务都被执行而不被遗漏,在缓存中为至少一个任务创建对应的结果对象,结果对象用于记录至少一个任务对应数量的执行结果。
[0085]
例如,任务创建进程创建了3个任务,在缓存中创建一个用于记录3个执行结果的结果对象。当任务执行进程被执行时,任务执行进程对应的流程节点监控结果对象中记录的执行结果。在确定结果对象中记录的执行结果少于3个的情况下,流程节点可以再次调度任务执行进程,以保证3个任务均被成功执行。在确定结果对象中记录的执行结果等于3个的情况下,流程节点获取并合并该3个执行结果作为最终的执行结果。
[0086]
通过本公开实施例,为成功创建的任务创建对应的结果对象,防止创建任务被遗漏。同时,根据结果对象中记录的执行结果数量实现对任务执行进程执行进度的监控。
[0087]
图7示意性示出了根据本公开另一实施例的业务进程调度方法的流程图。
[0088]
如图7所示,在确定业务进程出现执行异常的情况下,业务进程调度方法包括操作s701~s304。
[0089]
在操作s701,获取至少一个业务进程。
[0090]
在操作s702,为至少一个业务进程分别设置对应的流程节点。
[0091]
在操作s703,根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行。
[0092]
在操作s704,在确定业务进程出现执行异常的情况下,通过业务进程对应的流程节点重新调度业务进程,使出现执行异常的业务进程被重新执行。
[0093]
操作s701~s704与操作s301~s304的实施例相同,在此不再赘述。
[0094]
在操作s705,获取业务进程的执行结果。
[0095]
在操作s706,向业务进程对应的流程节点发送执行结果,以提示用户通过流程节点查看执行结果。
[0096]
在本公开实施例中,每个流程节点可以获取对应业务进程的执行结果,用户可通过流程节点查看相应的执行结果,以实时获取业务进程的执行状态。此外,由于每个流程节点独立控制对应的业务进程,用户可针对性地查看指定的流程节点中的执行结果,以获得相应的信息。用户通过各流程节点实现对业务进程执行的监控,及时获取执行详情。
[0097]
图8示意性示出了根据本公开的实施例的业务进程调度装置的框图。
[0098]
如图8所示,业务进程调度装置800包括第一获取模块810、设置模块820、调度模块830和确定模块840。
[0099]
第一获取模块810,用于获取至少一个业务进程。
[0100]
设置模块820,用于为至少一个业务进程分别设置对应的流程节点。
[0101]
调度模块830,用于根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行。
[0102]
以及
[0103]
确定模块840,用于在确定业务进程出现执行异常的情况下,通过业务进程对应的流程节点重新调度业务进程,使出现执行异常的业务进程被重新执行。
[0104]
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0105]
例如,第一获取模块810、设置模块820、调度模块830和确定模块840中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一获取模块810、设置模块820、调度模块830和确定模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块810、设置模块820、调度模块830和确定模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0106]
根据本公开的实施例,至少一个业务进程包括n个业务进程,n为大于等于2的整数。调度模块830包括:
[0107]
第一发送单元8301,用于根据n个业务进程之间的执行逻辑,通过n个业务进程中的第i业务进程对应的第i流程节点向第i业务进程发送调度消息,i∈[1,n)。
[0108]
执行单元8302,用于根据调度消息,执行第i业务进程,得到第i执行结果。
[0109]
第二发送单元8303,用于将第i执行结果发送到第i流程节点。
[0110]
以及
[0111]
确定单元8304,用于在确定第i执行结果为执行成功的情况下,根据n个业务进程之间的执行逻辑,通过第i 1业务进程对应的第i 1流程节点向第i 1业务进程发送调度消息。
[0112]
根据本公开的实施例,业务进程包括任务创建进程。调度模块830包括:
[0113]
第三发送单元8305,用于通过任务创建进程对应的流程节点向任务创建进程发送创建指令。
[0114]
第一创建单元8306,用于流程节点获取由任务创建进程基于创建指令创建的至少一个任务和创建结果。
[0115]
存储单元8307,用于在缓存中存储至少一个任务,以及在数据库中存储创建结果。
[0116]
根据本公开的实施例,业务进程还包括任务执行进程。调度模块830包括:
[0117]
第二创建单元8308,用于在缓存中存储至少一个任务后,在缓存中为至少一个任务创建对应的结果对象,结果对象用于记录至少一个任务对应数量的执行结果。以及
[0118]
监控单元8309,用于通过任务执行进程对应的流程节点监控结果对象,以获得执行结果。
[0119]
根据本公开的实施例,业务进程调度装置800包括:第一获取模块810、设置模块820、调度模块830、确定模块840、第二获取模块850和发送模块860。
[0120]
第二获取模块850,用于获取业务进程的执行结果。以及
[0121]
发送模块860,向业务进程对应的流程节点发送执行结果,以提示用户通过流程节点查看执行结果。
[0122]
根据本公开的实施例,业务进程调度装置800包括:第一获取模块810、设置模块820、调度模块830、确定模块840、第二获取模块850、发送模块860、第三获取模块870和执行模块880。
[0123]
在根据至少一个业务进程之间的执行逻辑,分别依次通过流程节点调度对应的业务进程,使业务进程依次被执行之前:
[0124]
第三获取模块870,用于分别获取每个流程节点的流程id。
[0125]
执行模块880,用于通过流程id对流程节点执行去重操作。
[0126]
需要说明的是,本公开的实施例中业务进程调度装置部分与本公开的实施例中业务进程调度方法部分是相对应的,业务进程调度装置部分的描述具体参考业务进程调度方法部分,在此不再赘述。
[0127]
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0128]
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0129]
在ram 903中,存储有系统900操作所需的各种程序和数据。处理器901、rom 902以及ram 903通过总线904彼此相连。处理器901通过执行rom 902和/或ram 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除rom902和ram 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0130]
根据本公开的实施例,系统900还可以包括输入/输出(i/o)接口905,输入/输出(i/o)接口905也连接至总线904。系统900还可以包括连接至i/o接口905的以下部件中的一
项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
[0131]
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0132]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0133]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0134]
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 902和/或ram 903和/或rom 902和ram 903以外的一个或多个存储器。
[0135]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框,以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0136]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0137]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而
并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献