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

处理业务请求的方法、装置、存储介质及电子设备与流程

2022-12-20 02:13:45 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种处理业务请求的方法、处理业务请求的装置、计算机可读存储介质及电子设备。


背景技术:

2.现有技术中,通常采用责任链的方式处理业务。责任链将所有能够处理业务处理请求的节点通过前一节点记住其下一个节点的引用而连成一条链;当有业务处理请求发生时,可将业务处理请求沿着这条链传递,直到有节点处理业务处理请求为止。因此,每个节点在处理业务时都依赖上一个节点的任务处理结果,使得责任链的方式代码耦合度高,维护困难。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本公开的目的在于提供一种处理业务请求的方法、处理业务请求的装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
5.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
6.根据本公开的第一方面,提供一种处理业务请求的方法,包括:
7.接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;
8.接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;
9.向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事件为所述当前业务处理状态变更对应的事件。
10.在本公开的一种示例性实施例中,所述向配置的所有节点中订阅目标事件的各同步节点分配第一线程前,所述方法还包括:
11.向订阅所述目标事件的各目标节点广播所述业务处理请求;
12.根据所述目标节点返回的属性信息从各所述目标节点中确定每一目标节点属于同步节点还是异步节点,所述属性信息是所述目标节点接收到广播的所述业务处理请求后向进程返回的。
13.在本公开的一种示例性实施例中,在所述节点的节点类型为同步节点时,所述节点的属性信息还包括执行顺序,所述同步节点依次调用第一线程包括:
14.所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程。
15.在本公开的一种示例性实施例中,所述方法还包括:
16.接收用户输入的第一节点的节点修改指令,所述第一节点为任意一个所述同步节点或者任意一个所述异步节点;
17.根据所述节点修改指令配置所述第一节点,以使所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,或使所述第一节点调用与其对应的第二线程执行所述业务处理请求。
18.在本公开的一种示例性实施例中,若所述第一节点为任意一个所述同步节点,所述根据所述节点修改指令配置所述第一节点包括:
19.在所述节点修改指令指示增加或删除所述第一节点时,重新配置所述第一节点后各同步节点的执行顺序。
20.在本公开的一种示例性实施例中,若所述第一节点为任意一个所述异步节点,所述根据所述节点修改指令配置所述第一节点包括:
21.在所述节点修改指令指示增加所述第一节点时,创建与所述第一节点对应的第二目标线程并将所述第二目标线程分配至所述第一节点,以使所述第一节点调用所述第二目标线程执行所述业务处理请求;
22.在所述节点修改指令指示删除所述第一节点时,删除所述第一节点以及与所述第一节点对应的第二目标线程。
23.在本公开的一种示例性实施例中,所述方法还包括:
24.获取目标异步节点的第一执行结果,所述目标异步节点为任意一个所述异步节点;
25.若根据所述第一执行结果确定所述目标异步节点执行所述业务处理请求时出错,则根据所述目标异步节点的属性信息重新配置所述目标异步节点,以使所述目标异步节点重新调用与其对应的第二线程执行所述业务处理请求。
26.在本公开的一种示例性实施例中,所述方法还包括:
27.获取目标同步节点的第二执行结果,所述目标同步节点为任意一个所述同步节点;
28.若根据所述第二执行结果确定所述目标同步节点执行所述业务处理请求时出错,则将所述业务处理请求进行回滚。
29.根据本公开的第二方面,提供一种处理业务请求的装置,包括:
30.节点配置模块,用于接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;
31.状态变更模块,用于接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;
32.线程分配模块,用于向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节
点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事件为所述当前业务处理状态变更对应的事件。
33.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。
34.根据本公开的第四方面,提供一种电子设备,包括:
35.处理器;以及
36.存储器,用于存储所述处理器的可执行指令;
37.其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述方法的步骤。
38.本公开的实施例提供的技术方案可以包括以下有益效果:
39.综上所述,本公开提供的方法,接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事件为所述当前业务处理状态变更对应的事件,能够根据用户的需求灵活的配置同步节点以及异步节点,并且同步节点和异步节点能够调用不同的线程处理业务,同时异步节点能够分别调用与其对应的线程处理业务,实现异步执行业务,大大降低了代码耦合度,方便维护,并且能够提升业务处理效率。
40.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1示意性地示出了本公开示例性实施例中一种处理业务请求的方法的流程图;
43.图2示意性地示出了本公开示例性实施例中一种节点修改方法的流程图;
44.图3示意性地示出了本公开示例性实施例中一种同步节点修改方法的示意图;
45.图4示意性地示出了本公开示例性实施例中一种异步节点修改方法的示意图;
46.图5示意性地示出了本公开示例性实施例中一种处理业务请求的装置的方框图;
47.图6示意性地示出了本公开示例性实施例中一种存储介质的示意图;
48.图7示意性地示出了本公开示例性实施例中一种电子设备的方框图。
49.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
50.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
51.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
52.现有技术中,通常采用责任链的方式处理业务。而责任链通常采用瀑布开发模式,并且瀑布开发模式用消息队列的方式实现,瀑布开发模式把所有业务按序罗列,采用消息队列按序执行业务。例如,业务按序罗列为支付-》订单状态变更-》结算单新增-》库存冻结-》发送消息。采用消息队列实现时,支付业务触发消息队列,订单节点执行支付业务,以变更订单状态。订单节点执行支付业务后,修改订单状态并发送订单状态变更消息。结算节点订阅状态变更消息,新增结算订单的数据,并发送新增结算订单的消息。库存节点订阅新增结算订单的消息,冻结库存并发送冻结库存的消息。消息发生节点订阅冻结库存的消息,向用户发生支付完成的消息,业务处理完成。因此,现有技术的代码耦合度高,维护困难,并且业务处理的效率较低。
53.针对现有技术中存在的上述缺陷,本示例实施方式中首先提供了一种处理业务请求的方法,能够根据用户的需求灵活的配置同步节点以及异步节点,并且同步节点和异步节点能够调用不同的线程处理业务,同时异步节点能够分别调用与其对应的线程处理业务,实现异步执行业务,大大降低了代码耦合度,方便维护,并且能够提升业务处理效率。参考图1中所示,上述的处理业务请求的方法可以包括以下步骤:
54.s11、接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;
55.s12、接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;
56.s13、向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事件为所述当前业务处理状态变更对应的事件。
57.本公开提供的处理业务请求的方法,通过接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事
件为所述当前业务处理状态变更对应的事件,能够根据用户的需求灵活的配置同步节点以及异步节点,并且同步节点和异步节点能够调用不同的线程处理业务,同时异步节点能够分别调用与其对应的线程处理业务,实现异步执行业务,大大降低了代码耦合度,方便维护,并且能够提升业务处理效率。
58.下面,将结合附图及实施例对本示例实施方式中的处理业务请求的方法中各个步骤进行更详细的说明。
59.在s11中,接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点。
60.在本公开的一种示例性实施例中,所述属性信息包括节点的节点类型、节点订阅的事件以及节点的业务类型,所述节点类型包括同步节点以及异步节点。在所述节点为同步节点时,所述属性信息还包括所述节点的执行顺序。进程接收用户输入的属性信息后,能够所述根据属性信息配置不同类型的节点(即同步节点和异步节点)各节点的订阅事件、各节点的业务类型、各节点中同步节点的执行顺序。
61.在s12中,接收用户输入的业务处理请求并根据所述业务处理请求变更当前业务处理状态。
62.具体的,可以采用状态机生成不同的业务处理状态并且变更业务处理状态。状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。有限状态(finite state machine,fsm)主要分为2大类:第一类为输出只和状态有关而与输入无关的moore状态机。第二类为输出不仅和状态有关而且和输入有关系的mealy状态机。
63.在本发明的一种示例性实施例中,可以使用mealy状态机,将所述业务处理请求输入mealy状态机,以变更当前业务处理状态。例如,mealy状态机的当前业务处理状态为未支付,业务处理请求为订单支付请求。将订单支付请求输入mealy状态机,将当前业务处理状态从未支付变更为已支付。
64.在步骤s13中,向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求。基于上述内容,在本发明的一种示例性实施例中,所述向配置的所有节点中订阅目标事件的各同步节点分配第一线程前,所述方法还包括:
65.s14、向订阅所述目标事件的目标节点广播所述业务处理请求;
66.s15、根据所述目标节点返回的属性信息从各所述目标节点中确定每一目标节点属于同步节点还是异步节点,所述属性信息是所述目标节点接收到广播的所述业务处理请求后向进程返回的。
67.在本发明的一种示例性实施例中,当所述业务处理请求为订单支付请求时,所述目标事件所述目标事件为当前业务处理状态从未支付变更为已支付对应的事件。进程向订阅目标事件的目标节点广播所述业务处理请求,并根据目标节点返回的属性信息中的节点类型确定所述同步节点以及所述异步节点。
68.具体来说,若用户配置了a、b、c、d、e、f共6个节点,该6个节点中a、b、c为同步节点,d、e、f为异步节点,且目标节点a、b、c、d、e订阅了当前业务处理状态从未支付变更为已支付对应的事件。则目标节点a、b、c、d、e可以接收到广播的所述业务处理请求,并向进程返回其属性信息。进程接收到目标节点a、b、c、d、e各自返回的属性信息后,根据a、b、c、d、e各自返回的属性信息确定a、b、c为同步节点,d、e为异步节点,并向a、b分配进程中的第一线程,以使所述a、b、c依次调用第一线程执行所述业务处理请求;和/或,向d、e分别分配进程中的第二线程,以使各d、e同时调用与其对应的所述第二线程执行所述业务处理请求。
69.基于上述内容,在本发明的一种示例性实施例中,从所述目标节点中确定所述同步节点以及所述异步节点包括:
70.s151、获取所述业务处理请求的目标业务类型;
71.s152、从所述目标节点中确定业务类型为所述目标业务类型的所述同步节点以及所述异步节点。
72.例如,当所述业务处理请求为订单支付请求时,所述业务处理请求的目标业务类型为订单支付业务。再从目标节点中确定业务类型为订单支付业务的所述同步节点以及所述异步节点。又如,当所述业务处理请求为订单退货请求时,所述业务处理请求的目标业务类型为订单退货业务。再从目标节点中确定业务类型为订单退货业务的所述同步节点以及所述异步节点。
73.基于上述内容,在本发明的一种示例性实施例中,所述同步节点依次调用第一线程包括:
74.所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程。
75.在本发明的一种示例性实施例中,第一线程为所述进程中的主线程。例如同步节点分别为a、b、c。a、b、c的执行顺序分别为3、1、2。则b先调用主线程,以执行业务处理请求。b调用主线程后,c再调用主线程,以执行业务处理请求。c调用主线程后,a再调用主线程,以执行业务处理请求,即b、c、a依次调用主线程。
76.基于上述内容,在本发明的一种示例性实施例中,如图2所示,上述方法还包括:
77.s16、接收用户输入的第一节点的节点修改指令,所述第一节点为任意一个所述同步节点或者任意一个所述异步节点;
78.s17、接根据所述节点修改指令配置所述第一节点,以使所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,或使所述第一节点调用与其对应的第二线程执行所述业务处理请求。
79.在本公开的一种示例性实施例中,所述节点修改指令用于指示增加、删除或者所述更新所述第一节点。在所述第一节点为任意一个所述同步节点时,根据所述节点修改指令配置所述第一节点,以使所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求;在所述第一节点为任意一个所述异步节点时,根据所述节点修改指令配置所述第一节点,以使所述第一节点调用与其对应的第二线程执行所述业务处理请求。
80.基于上述内容,若所述第一节点为任意一个所述同步节点,在本公开的一种示例性实施例中,上述根据所述节点修改指令修改所述第一节点包括:
81.在所述节点修改指令指示增加或删除所述第一节点时,重新配置所述第一节点后
各同步节点的执行顺序。
82.基于上述内容,在本公开的一种示例性实施例中,如图3所示,上述在所述节点修改指令指示增加或删除所述第一节点时,重新配置所述第一节点后各同步节点的执行顺序包括:
83.s1711、在所述节点修改指令指示增加所述第一节点时,根据所述节点修改指令配置所述第一节点以及所述第一节点的第一执行顺序;
84.s1712、根据所述第一执行顺序增大第二节点的第二执行顺序,以使在所述第二节点的执行顺序增大后,所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,所述第二节点为执行顺序大于或者等于所述第一执行顺序的同步节点。
85.在本公开的一种示例性实施例中,在所述节点修改指令指示增加所述第一节点时,所述节点修改指令包括所述第一节点的属性信息,所述进程能够根据所述第一节点的属性信息配置所述第一节点以及所述第一节点的执行顺序;进一步地,配置所述第一节点以及所述第一节点的执行顺序后,所述进程根据所述第一执行顺序增大第二节点的第二执行顺序,以使在所述第二节点的执行顺序增大后,所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,所述第二节点为执行顺序大于或者等于所述第一执行顺序的同步节点。
86.例如,所述节点修改指令用于指示增加同步节点d时,所述节点修改指令包括d的属性信息,d的属性信息中包括d的执行顺序2。所述进程根据d的属性信息配置所述d以及d的执行顺序2,并将c的执行顺序由2增大为3,将a的执行顺序由3增大为4。进一步地,更新c和a的执行顺序后,同步节点b、d、c、a依次调用所述主线程。
87.s1713、在所述节点修改指令指示删除所述第一节点时,删除所述第一节点并根据所述第一执行顺序减小所述第二执行顺序,以使在所述第二执行顺序减小后,所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求;
88.例如,所述节点修改指令用于指示删除同步节点b时,所述进程删除b,并将c的执行顺序由2减小为1,将a的执行顺序由3减小为2。进一步地,更新c和a的执行顺序后,同步节点c和a依次调用所述主线程。
89.s1714、在所述节点修改指令指示更新所述第一节点时,根据所述节点修改指令重新配置所述第一节点,以使在所述第一节点重新配置后,所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求。
90.在本发明的一种示例性实施例中,在所述节点修改指令指示更新所述第一节点时,所述节点修改指令包括所述第一节点待更新的属性信息,所述进程根据所述第一节点待更新的属性信息重新配置所述第一同步节点,以使在所述第一节点重新配置后,所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求。
91.例如,所述节点修改指令用于指示更新同步节点b和c,所述节点修改指令包括b待更新至的执行顺序2以及c待更新至的执行顺序1。则根据所述节点修改指令将b的执行顺序更新为2并将c的执行顺序更新为1。进一步地,更新b和c的执行顺序后,同步节点c、b、a依次调用所述主线程。
92.基于上述内容,若所述第一节点为任意一个所述异步节点,在本公开的一种示例
性实施例中,如图4所示,上述根据所述节点修改指令修改所述第一节点包括:
93.s1721、在所述节点修改指令指示增加所述第一节点时,创建与所述第一节点对应的第二目标线程并将所述第二目标线程分配至所述第一节点,以使所述第一节点调用所述第二目标线程执行所述业务处理请求。
94.在本公开的一种示例性实施例中,所述节点修改指令指示增加所述第一节点时,根据所述节点修改指令配置所述第一节点。进一步地,根据所述节点修改指令配置所述第一节点后,创建第与所述第一节点对应的第二目标线程并将所述第二目标线程分配至所述第一节点,以使所述第一节点调用所述第二目标线程执行所述业务处理请求。
95.例如,所述节点修改指令用于指示增加异步节点e时,所述节点修改指令包括e的属性信息。所述进程根据e的属性信息配置异步节点e。进一步地,配置e后,所述进程创建与e对应的第二目标线程并将所第二目标线程分配至e。e再调用第二目标线程,以执行业务处理请求。
96.此处需要说明的是,新增异步节点时,不会对同步节点以及其他异步节点影响,即同步节点和其他异步节点可以正常执行业务处理请求。
97.s1722、在所述节点修改指令指示删除所述第一节点时,删除所述第一节点以及与所述第一节点对应的第二目标线程。
98.例如,所述节点修改指令用于指示删除异步节点d时,所述进程根据所述节点修改指令删除d以及与d对应的第二目标线程。
99.此处需要说明的是,在所述第一节点为异步节点时,所述节点修改指令还可指示更新所述第一节点。在所述节点修改指令指示更新所述第一节点时,根据所述节点修改指令重新配置所述第一节点,以使所述第一节点重新调用与其对应的所述第二线程执行所述业务处理请求。
100.在本公开的一种示例性实施例中,在所述节点修改指令更新所述第一节点时,所述节点修改指令包括所述第一节点待更新的属性信息,所述进程根据所述第一节点待更新的属性信息重新配置所述第一节点,以使所述第一节点重新调用与其对应的所述第二线程,以执行所述业务处理请求。
101.例如,所述节点修改指令用于指示更新所述异步节点d时,所述节点修改指令包括d待更新的属性信息。所述进程根据d待更新的属性信息重新配置第一节点d。进一步地,重新配置d后,d重新调用与其对应的第二线程,以执行业务处理请求。
102.此处需要说明的是,异步节点更新时,不会对同步节点以及其他异步节点影响,即同步节点和其他异步节点可以正常执行业务处理请求。
103.基于上述内容,在本发明的一种示例性实施例中,所述向配置的所有节点中订阅目标事件的各同步节点分配第一线程前,所述方法还包括:
104.s18、所述进程根据所述异步节点的数量创建所述第二线程。
105.在本发明的一种示例性实施例中,根据所述第二线程的数量创建相同数量的第二线程。
106.例如,异步节点的数量为4,则创建4个第二线程。又如,异步节点的数量为5,则创建5个第二线程。每个异步节点调用与其对应的第二线程,以执行所述待处理请求。
107.基于上述内容,在本发明的一种示例性实施例中,如图4所示,所述方法还包括:
108.s19、获取目标异步节点的第一执行结果,所述目标异步节点为任意一个异步节点;
109.s20、若根据所述第一执行结果确定所述目标异步节点执行所述业务处理请求时出错,则根据所述目标异步节点的属性信息重新配置所述目标异步节点,以使所述目标异步节点重新调用与其对应的第二线程执行所述业务处理请求。
110.例如,异步节点包括a、b、c、d。若c执行所述业务处理请求时出错,则根据c的属性信息重新配置c。重新配置c后,c重新调用与其对应的第二线程,以执行所述业务处理请求。
111.此处需要说明的是,目标异步节点执行所述业务处理请求时出错时,不会对同步节点以及其他异步节点影响,即同步节点和其他异步节点可以正常执行业务处理请求。
112.基于上述内容,在本发明的一种示例性实施例中,所述方法还包括:
113.s21、获取目标同步节点的第二执行结果,所述目标同步节点为任意一个同步节点;
114.s22、若根据所述第二执行结果确定所述目标同步节点执行所述业务处理请求时出错,则将所述业务处理请求进行回滚。
115.在本公开的一种示例性实施例中,根据所述第二执行结果确定所述目标同步节点执行所述业务处理请求时出错,则将所述业务处理请求进行回滚,以使各所述同步节点重新按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,以及各所述异步节点分别调用与其对应的第二线程执行所述业务处理请求。下面结合具体的实施例,对本公开的处理业务请求的方法进行说明。
116.预先配置状态机,状态机包括“支付完成”以及“未支付”的业务处理状态;
117.预先配置库存节点为订阅“支付完成”事件,且库存节点库为同步节点,执行顺序为1,库存节点的业务类型为支持药品、咨询订单以及支持c端渠道;
118.预先配置工单节点为订阅“支付完成”事件,工单节点为异步节点,工单节点的业务类型为药品、咨询订单、支持任意渠道;
119.预先配置消息节点为订阅“支付完成”事件,且消息节点为异步节点,消息节点的业务类型为药品、咨询订单以及支持任意渠道。
120.当用户输入订单支付请求时,进程将当前业务处理状态从“未支付”变更为“支付完成”,并发出广播消息。
121.订阅“支付完成”事件的库存节点、工单节点以及消息节点接收广播消息后,向进程返回其属性信息。
122.进程根据分别工单节点以及消息节点接收广播消息的属性信息向工单节点以及消息节点各分配第二线程。库存节点先调用主线程以执行订单支付请求。执行成功后,工单节点及消息节点同时分别调用与其对应的第二线程,同时执行订单支付请求。如果库存节点执行订单支付请求时失败,则工单节点及消息节点不再执行订单支付请求。如果工单节点或消息节点执行订单支付请求时失败,则不影响库存节点执行订单支付请求。
123.综上所述,本公开提供的处理业务请求的方法,能够根据用户的需求灵活的配置同步节点以及异步节点,并且同步节点和异步节点能够调用不同的线程处理业务,同时异步节点能够分别调用与其对应的线程处理业务,实现异步执行业务,大大降低了代码耦合度,方便维护,并且能够提升业务处理效率,并且能够根据用户的节点修改指令自由配置节
点间以及节点顺序,实现拼插组装业务处理流程,进而动态变更业务处理流程。
124.在介绍了本发明示例性实施方式的处理业务请求的方法之后,接下来,参考图5对本发明示例性实施方式的处理业务请求的装置进行描述。
125.参考图5所示,本发明示例性实施方式的处理业务请求的装置50可以包括:节点配置模块501、状态变更模块502以及线程分配模块503,其中:
126.节点配置模块,用于接收用户输入的节点的属性信息,并根据所述属性信息配置所述节点,所述属性信息包括所述节点的节点类型及所述节点所订阅的事件,所述节点类型包括同步节点和异步节点;
127.状态变更模块,用于接收用户输入的业务处理请求,并根据所述业务处理请求变更当前业务处理状态;
128.线程分配模块,用于向配置的所有节点中订阅目标事件的各同步节点分配第一线程,以使所述同步节点依次调用第一线程执行所述业务处理请求;和/或,向配置的所有节点中订阅所述当前业务处理状态变更事件的各异步节点分别分配第二线程,以使各所述异步节点同时调用与其对应的所述第二线程执行所述业务处理请求,所述目标事件为所述当前业务处理状态变更对应的事件。
129.在本公开的一种示例性实施例中,所述装置还包括:
130.节点确定模块,用于向订阅所述目标事件的各目标节点广播所述业务处理请求;根据所述目标节点返回的属性信息从各所述目标节点中确定每一目标节点属于同步节点还是异步节点,所述属性信息是所述目标节点接收到广播的所述业务处理请求后向进程返回的。
131.在本公开的一种示例性实施例中,所述属性信息还包括所述节点的业务类型,所述节点确定模块包括:
132.业务类型获取单元,用于获取所述业务处理请求的目标业务类型;
133.节点确定单元,用于从所述目标节点中确定业务类型为所述目标业务类型的所述同步节点以及所述异步节点。
134.在本公开的一种示例性实施例中,在所述节点的节点类型为同步节点时,所述节点的属性信息还包括执行顺序,所述第一线程分配模块用于:
135.所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程。
136.在本公开的一种示例性实施例中,所述装置还包括:
137.节点修改模块,用于接收用户输入的第一节点的节点修改指令,所述第一节点为任意一个所述同步节点或者任意一个所述异步节点;根据所述节点修改指令配置所述第一节点,以使所述同步节点按照各所述同步节点的执行顺序依次调用所述第一线程执行所述业务处理请求,或使所述第一节点调用与其对应的第二线程执行所述业务处理请求。
138.在本公开的一种示例性实施例中,若所述第一节点为任意一个所述同步节点,所述节点修改模块包括:
139.执行顺序配置单元,用于在所述节点修改指令指示增加或删除所述第一节点时,重新配置所述第一节点后各同步节点的执行顺序。
140.在本公开的一种示例性实施例中,若所述第一节点为任意一个所述异步节点,所述节点修改模块包括:
141.目标线程创建单元,用于在所述节点修改指令指示增加所述第一节点时,创建与所述第一节点对应的第二目标线程并将所述第二目标线程分配至所述第一节点,以使所述第一节点调用所述第二目标线程执行所述业务处理请求;
142.目标线程删除单元,用于在所述节点修改指令指示删除所述第一节点时,删除所述第一节点以及与所述第一节点对应的第二目标线程。
143.在本公开的一种示例性实施例中,所述装置还包括:
144.目标节点配置模块,用于获取目标异步节点的第一执行结果,所述目标异步节点为任意一个所述异步节点;若根据所述第一执行结果确定所述目标异步节点执行所述业务处理请求时出错,则根据所述目标异步节点的属性信息重新配置所述目标异步节点,以使所述目标异步节点重新调用与其对应的第二线程执行所述业务处理请求。
145.在本公开的一种示例性实施例中,所述装置还包括:
146.业务回滚模块,用于获取目标同步节点的第二执行结果,所述目标同步节点为任意一个所述同步节点;若根据所述第二执行结果确定所述目标同步节点执行所述业务处理请求时出错,则将所述业务处理请求进行回滚。
147.由于本发明实施方式的处理业务请求的装置的各个功能模块与上述处理业务请求的方法发明实施方式中相同,因此在此不再赘述。
148.在介绍了本发明示例性实施方式的处理业务请求的方法、处理业务请求的装置之后,接下来,参考图6对本发明示例性实施方式的存储介质进行说明。
149.参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
150.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
151.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
152.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
153.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如java、c 等,还包括常规的过程式程序设计语言-诸如"c"语言或类似的程序设计语言。程序代码可以完全地在用户计算
设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
154.在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图7对本发明示例性实施方式的电子设备进行说明。
155.图7显示的电子设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
156.如图7所示,电子设备70以通用计算设备的形式表现。电子设备80的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
157.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤s11至步骤s13。
158.存储单元720可以包括易失性存储单元,例如随机存取存储单元(ram)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(rom)7203。存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
159.总线730可以包括数据总线、地址总线和控制总线。
160.电子设备70也可以与一个或多个外部设备80(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(i/o)接口750进行。电子设备70还包括显示单元740,其连接到输入/输出(i/o)接口750,用于进行显示。并且,电子设备80还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备70的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
161.应当注意,尽管在上文详细描述中提及了速率控制装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
162.此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
163.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能
组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献