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

任务分发方法、装置、设备及计算机可读存储介质与流程

2022-12-06 19:10:42 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,涉及但不限于一种任务分发方法、装置、设备及计算机可读存储介质。


背景技术:

2.目前,口袋助理的技术架构中,业务模块采用同步交互的方式执行任务,即业务模块的一次请求在执行模块将请求中的工作完成、且执行模块回复业务模块该请求已经完成后,业务模块确定该请求结束,业务模块得到请求完成的回复后才能继续执行后续工作。
3.但是,同步交互的方式在数据量巨大的情况下,比如在客户导入的情况下,业务模块需要等待较长时间才能得到回复,如此会导致服务器需要承受较大的性能压力,使得用户等待时间较长,造成用户体验不佳的问题。


技术实现要素:

4.本技术实施例提供一种任务分发方法、装置、设备及计算机可读存储介质。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种任务分发方法,应用于任务分发系统,所述系统至少包括:任务分发模块、路由模块和业务模块;所述方法包括:
7.所述任务分发模块接收所述业务模块发送的异步任务创建请求;
8.当所述异步任务创建请求为合法请求时,所述任务分发模块响应于所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果;
9.所述任务分发模块通过所述路由模块向所述业务模块返回所述响应结果,并基于预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务,以使得所述业务模块执行所述异步任务。
10.本技术实施例提供一种任务分发装置,包括:
11.接收模块,用于接收所述业务模块发送的异步任务创建请求;
12.创建模块,用于当所述异步任务创建请求为合法请求时,响应于所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果;
13.发送模块,用于通过所述路由模块向所述业务模块返回所述响应结果,并基于预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务,以使得所述业务模块执行所述异步任务。
14.本技术实施例提供一种任务分发设备,包括:
15.存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的任务分发方法。
16.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行所述可执行指令时,实现上述的任务分发方法。
17.本技术实施例提供一种任务分发方法、装置、设备及计算机可读存储介质,其中,
任务分发模块在接收到业务模块发送的异步任务创建请求时,判断异步任务创建请求是否合法,当该请求合法时,任务分发模块创建异步任务,并向业务模块返回异步任务创建成功的响应结果,任务分发模块基于预设的调度规则将异步任务发送至业务模块,业务模块执行该异步任务。如此,任务分发模块在成功创建异步任务后将响应结果返回至业务模块,避免了业务模块需要等待任务执行完成才能结束任务的问题,优化了用户体验,同时任务分发模块通过路由模块将异步任务发送至业务模块,业务模块继续执行任务,如此,将业务模块的同步交互模式转化为异步任务通知模式,业务模块无需等待任务执行的结果,既优化了用户体验,也缓解了服务器的性能压力。
附图说明
18.图1是本技术实施例提供的一种任务分发系统的组成结构示意图;
19.图2是本技术实施例提供的任务分发方法的一个可选的流程示意图;
20.图3是本技术实施例提供的任务分发方法的一个可选的流程示意图;
21.图4是本技术实施例提供的任务分发方法的一个可选的流程示意图;
22.图5是本技术实施例提供的任务分发方法的一个可选的流程示意图;
23.图6是本技术实施例提供的任务分发系统的一个可选的整体框架图;
24.图7是本技术实施例提供的任务分发方法的一个可选的流程图;
25.图8是本技术实施例提供的任务分发方法的一个可选的时序图;
26.图9是本技术实施例提供的任务分发装置的组成结构示意图;
27.图10是本技术实施例提供的任务分发设备的组成结构示意图。
具体实施方式
28.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
29.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本技术实施例所使用的所有的技术和科学术语与属于本技术实施例的技术领域的技术人员通常理解的含义相同。本技术实施例所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
30.在解释本技术实施例的方案之前,首先对本技术实施例所涉及到的名词和专用术语进行解释:
31.1)请求:是指网络请求(network request),下文简称为req。
32.2)响应:是指网络请求对应的回复(response),下文简称为rsp。
33.3)请求重放:是指向业务模块再一次发起请求。
34.4)路由层(oprtproxy):是指业务应用内部所使用的自研的网络通信协议。此处路由层,对应业务应用架构中的oprtproxy模块,即全局服务请求转发代理模块,起到对请求的路由作用。
35.5)同步:此处聚焦于描述交互方式。同步交互,业务模块的一次请求会一直等待执
行模块将请求中的工作完成、且执行模块回复业务模块该请求已经完成后,业务模块确定该请求结束,业务模块才能继续之后的工作,否则业务模块一直等待执行模块的执行结果。
36.6)异步:即异步交互,业务模块的一次请求会快速得到回复响应,业务模块之后的工作不会受此阻塞。
37.基于相关技术中业务模块使用同步交互的方式在数据量巨大的情况下,业务模块需要等待较长时间才能得到任务完成的回复,如此会导致服务器需要承受较大的性能压力,使得用户等待时间较长,造成用户体验不佳的问题。本技术实施例提供一种任务分发方法,应用于任务分发系统,所述系统至少包括:任务分发模块、路由模块和业务模块。任务分发模块在接收到业务模块发送的异步任务创建请求时,判断异步任务创建请求是否合法,当该请求合法时,任务分发模块创建异步任务,并向业务模块返回异步任务创建成功的结果,任务分发模块基于预设的调度规则将异步任务发送至业务模块,业务模块执行该异步任务。如此,任务分发模块在成功创建异步任务后将结果返回至业务模块,通过路由模块将异步任务发送至业务模块,如此,将业务模块的同步交互模式转化为异步任务,业务模块无需等待任务执行的结果,优化了用户体验,缓解了服务器的性能压力。
38.本技术实施例提供一种任务分发方法,该方法应用于任务分发系统,图1是本技术实施例提供的一种任务分发系统的组成结构示意图,如图1所示,任务分发系统10至少包括:任务分发模块100、路由模块101和业务模块102。
39.这里,任务分发模块100可以是全局模块,全局模块可以有对应的数据库,数据库用于存储全局性的基础数据及架构配置信息,任务分发模块100通过路由模块101实现全局控制,并协调各单点程序之间进行业务处理;路由模块101可以是全局服务请求转发代理模块,起到对请求的路由作用,即将一个请求分发至业务处理模块或任务分发模块;业务模块102可以是单点程序,每一业务模块负责指定范围内的业务逻辑处理。
40.在一些实施例中,业务模块102可以直接连接任务分发模块100,向任务分发模块100发送异步任务创建请求;或者,业务模块102通过路由模块101将异步任务创建请求发送至任务分发模块100。而任务分发模块100只能通过路由模块101才能将异步任务执行请求发送至业务模块102。
41.下面说明本技术实施例提供的任务分发设备的示例性应用,本技术实施例提供的任务分发设备可以实施为笔记本电脑、平板电脑、台式计算机、移动设备等各种类型的终端,也可以实施为服务器。下面,将说明任务分发设备实施为服务器时的示例性应用。
42.参见图2,图2是本技术实施例提供的任务分发方法的一个可选的流程示意图,结合图1的任务分发系统,下面对图2示出的步骤进行说明。
43.步骤s201、任务分发模块接收业务模块发送的异步任务创建请求。
44.在一些实施例中,业务模块可以是单点程序,任务分发模块可以是全局模块。单点程序可以直接与全局模块连接发送请求或任务,也可以通过路由模块向全局模块发送请求或任务但全局模块需要通过路由模块才能向业务模块发送任务或请求,因此,在任务分发模块接收业务模块发送的异步任务创建请求之前,业务模块可以通过直连的方式或通过路由模块向任务分发模块发送异步任务创建请求。
45.在一些实施例中,业务模块也可以是多点程序,多点程序通过路由模块与任务分发模块连接,通过路由模块将异步任务创建请求发送至任务分发模块。
46.步骤s202、当所述异步任务创建请求为合法请求时,所述任务分发模块响应于所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果。
47.在一些实施例中,任务分发模块对异步任务创建请求进行解析,根据解析后的结果,判断异步任务创建请求是否为合法请求,当所述异步任务创建请求为合法请求时,所述任务分发模块响应于所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果。
48.步骤s203、所述任务分发模块通过所述路由模块向所述业务模块返回所述响应结果。
49.在一些实施例中,任务分发模块为全局模块,需要通过路由模块才能实现与业务模块的连接,因此,在任务分发模块创建成功异步任务后,任务分发模块通过路由模块将异步任务创建成功的响应结果发送至业务模块。如此,业务模块无需等待异步任务的执行结果,优化了用户体验,缓解了服务器的性能压力。
50.步骤s204、基于预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务,以使得所述业务模块执行所述异步任务。
51.在一些实施例中,任务分发模块中包含用户预设的配置文件,配置文件中包括用户预设的调度规则,任务分发模块根据预设的调度规则,通过路由模块向业务模块发送异步任务,以使得业务模块执行异步任务。
52.在一些实施例中,任务分发模块可以通过路由模块向业务模块返回所述响应结果之后,任务分发模块再基于预设的调度规则,通过路由模块向业务模块发送所述异步任务;或者,在任务分发模块通过路由模块向业务模块返回响应结果的同时,任务分发模块基于预设的调度规则,通过路由模块向业务模块发送所述异步任务。
53.本技术实施例提供的任务分发方法,任务分发模块在成功创建异步任务后将结果返回至业务模块,避免了业务模块需要等待任务执行完成才能结束任务的问题,优化了用户体验;同时任务分发模块通过路由模块将异步任务发送至业务模块,业务模块继续执行任务,如此,将业务模块的同步交互模式转化为异步任务通知,业务模块无需等待任务执行的结果,既优化了用户体验,也缓解了服务器的性能压力。
54.在一些实施例中,业务模块可以是单点程序,也可以是多点程序,因此,在任务分发模块接收业务模块发送的异步任务创建请求之前,业务模块可以通过不同的方式将异步任务创建请求发送至任务分发模块。图3是本技术实施例提供的任务分发方法的一个可选的流程示意图,基于图2,如图3所示,步骤s201中业务模块将异步任务创建请求发送至任务分发模块,可以通过如下步骤实现:
55.步骤s301、业务模块通过直连的方式,向所述任务分发模块发送所述异步任务创建请求。
56.步骤s302、业务模块通过所述路由模块将所述异步任务创建请求发送至所述任务分发模块。
57.这里,步骤s301和s302是业务模块将异步任务创建请求发送至任务分发模块的不同实现方式,图3仅是为了简单明了的展示两种方式,因此,步骤s301和s302在时序图中没有时间先后之分,只表示两种并列的实现方式。
58.在一些实施例中,任务分发模块为全局模块。当业务模块为单点程序时,业务模块
可以直接与任务分发模块连接发送请求或任务,也可以通过路由模块向任务分发模块发送请求或任务;当业务模块为多点程序时,业务模块通过路由模块与任务分发模块连接,通过路由模块将异步任务创建请求发送至任务分发模块。
59.本技术实施例中业务模块可以选择不同的交互方式将请求或任务发送至任务分发模块,拓展了任务分发系统的交互方式;同时本技术实施例提供的任务分发方法通过路由模块使得任务分发系统中的业务模块不受限于单点程序,未来当业务模块都部署为多点程序时,依旧可以使用本技术实施例提供的任务分发方法来实现对任务或请求的分发。
60.本技术实施例提供的任务分发方法可以对合法请求进行分发,因此在分发合法请求之前,需要对异步任务创建请求是否合法进行判断。图4是本技术实施例提供的任务分发方法的一个可选的流程示意图,基于图2,如图4所示,判断异步任务创建请求是否合法可以通过如下步骤实现:
61.s401、对所述异步任务创建请求进行解析,得到解析结果。
62.s402、根据所述解析结果,判断所述异步任务创建请求是否合法。
63.在一些实施例中,在对异步任务创建请求进行解析之后,可以根据异步任务创建请求能否被序列化或反序列化,或者异步任务创建请求中是否包括预设标记字段来判断所述异步任务创建请求是否合法。
64.这里,序列化或反序列化是指将请求转换为具有特定格式的字节序列的过程,例如,可以是将请求转换为json或xml格式的文件。通过序列化使得请求在传递和保存时,能够保证请求的完整性和可传递性。通过将请求转换为有序字节流,以使得请求能够在网络上传输或者使得请求能够保存在本地文件中。
65.在一些实施例中,预设标记字段可以是固定参数,例如:预设标记字段可以是async_task标志,预设标记字段用于表示当前请求是由用户调用还是由任务分发模块调用。
66.在一些实施例中,当async_task=false,clone(req)时,确定异步任务创建请求请求是由用户调用,此时,设置req.async_task=true,任务分发模块完成创建异步任务的逻辑后,将对应于异步任务的响应结果返回至业务模块。
67.s403、当所述异步任务创建请求合法时,创建异步任务,并生成对应于所述异步任务的响应结果。
68.在本技术实施例中,当确定出所述异步任务创建请求能够被序列化或者能够被反序列化,且所述解析结果表明所述异步任务创建请求中包括预设标记字段时,确定所述异步任务创建请求为合法请求,此时,任务分发模块响应所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果。如图3所示,在成功创建异步任务后,继续执行步骤s203和步骤s204。
69.s404、当所述异步任务创建请求不合法时,任务分发模块终止创建所述异步任务,并生成终止响应结果。
70.在一些实施例中,当所述异步任务创建请求不能被序列化或者不能被反序列化或者所述解析结果表明所述异步任务创建请求中不包括预设标记字段时,确定所述异步任务创建请求为非法请求,此时,任务分发模块终止创建所述异步任务,并生成终止响应结果。
71.s405、任务分发模块通过路由模块向业务模块返回所述终止响应结果。
72.这里,由于任务分发模块为全局模块,因此任务分发模块通过路由模块向业务模块返回所述终止响应结果,终止本次异步任务创建请求。
73.本技术实施例通过判断异步任务创建请求是否合法来决定是否创建异步任务并执行所述异步任务,减少了服务器执行无效任务的时间,降低了服务器的性能压力。
74.在一些实施例中,任务分发模块中包含用户预设的配置文件,配置文件中包含预设的调度规则,在任务分发模块成功创建异步任务后,根据预设的调度规则通过路由模块向业务模块发送异步任务。图5是本技术实施例提供的任务分发方法的一个可选的流程示意图,基于图2,如图5所示,任务分发模块根据预设的调度规则,通过路由模块向业务模块发送异步任务可以通过以下步骤实现:
75.步骤s501、在所述任务分发模块成功创建每一异步任务之后,根据所创建的异步任务生成异步任务执行请求。
76.在本技术实施例中,异步任务创建请求用于请求任务分发模块创建至少一个异步任务。在任务分发模块成功创建每一异步任务的同时,为每一异步任务创建异步任务执行请求。
77.这里,每一异步任务执行请求中包含预设标记字段async_task标志,当async_task=true时,确定异步任务执行请求是由任务分发模块调用,此时,业务模块完成该异步任务执行请求的主要业务逻辑,即业务模块执行异步任务,得到任务执行结果,业务模块通过路由模块向任务分发模块返回所述任务执行结果,任务分发模块存储所述任务执行结果。
78.步骤s502、所述任务分发模块通过所述路由模块将所述异步任务执行请求发送至所述业务模块,以请求所述业务模块执行所述异步任务。
79.在一些实施例中,路由模块在接收到任务分发模块发送的异步任务执行请求后,将所述异步任务执行请求转发至业务模块,业务模块执行所述异步任务后,通过路由模块向任务分发模块返回任务执行结果,所述任务分发模块存储所述任务执行结果。
80.在一些实施例中,任务分发模块根据预设的调度规则,通过路由模块向业务模块发送异步任务,还可以通过以下步骤实现:
81.步骤s503、在所述任务分发模块成功创建每一异步任务之后,确定所述任务分发系统中已创建的且处于待执行状态的全部异步任务、和处于所述待执行状态的每一异步任务的创建时间。
82.步骤s504、根据每一所述异步任务的所述创建时间,对处于所述待执行状态的全部异步任务进行排序,形成待执行异步任务列表。
83.在一些实施例中,任务分发系统中存在多个创建成功但还未执行的异步任务,因此,在任务分发模块成功创建每一异步任务之后,确定任务分发系统中处于待执行状态的全部异步任务、和处于所述待执行状态的每一异步任务的创建时间,根据每一所述异步任务的创建时间,对处于待执行状态的全部异步任务进行排序,形成待执行异步任务列表。
84.步骤s505、根据所述待执行异步任务列表中的全部异步任务的排列顺序,依次将每一所述异步任务发送至所述业务模块,以使得所述业务模块执行对应的异步任务。
85.在一些实施例中,根据待执行异步任务列表和所述异步任务在所述待执行异步任务列表中的位置,确定创建异步任务执行请求的时间点,当当前时刻到达所述时间点时,创
建所述异步任务执行请求,任务分发模块通过路由模块将异步任务执行请求发送至业务模块,以使得业务模块执行所述异步任务,业务模块执行所述异步任务后,通过路由模块向任务分发模块返回任务执行结果,所述任务分发模块存储所述任务执行结果。
86.本技术实施例提供的任务分发方法,通过任务分发模块中预设的调度规则,在任务分发模块成功创建异步任务后,根据预设的调度规则通过路由模块向业务模块发送异步任务,使得业务模块有序执行任务,减少了资源浪费。
87.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
88.在本技术实施例中,业务模块通过直连或者路由层(即路由模块)代理的方式,请求任务分发模块创建任务;任务分发模块调度任务,通过路由层将请求分发回原业务模块,执行异步场景下的业务逻辑。
89.在一些实施例中,对于业务模块来说,同步逻辑和异步逻辑都写在业务模块的同一个接口里,同步逻辑和异步逻辑根据标记来进行区分。任务分发模块同步创建异步任务;业务模块同步执行异步任务业务逻辑。
90.在本技术实施例中,在请求中增加统一固定参数async_task标志。在业务处理逻辑中,增加如下逻辑:当任务来源为非任务分发(即请求为用户调用)时,async_task=false,clone(req),设置req.async_task=true,完成创建异步任务的逻辑后即返回;当任务来源为任务分发(即请求为任务分发模块调用)时,async_task=true,完成该请求的主要业务逻辑,并处理异步情况下的结果回复等额外工作。
91.在一些实施例中,采用任务分发模块进行任务分发的前提是req(即异步任务创建请求)同时支持同步逻辑和异步逻辑。任务分发模块创建任务时,将req现场存起来;任务分发模块调度任务时,由任务分发模块主动去调度待执行的任务,并将执行结果保存在数据库中。
92.图6是本技术实施例提供的任务分发系统的一个可选的整体框架图,如图6所示,任务分发系统600包括任务分发模块601、服务发包转发代理配套模块602(即路由模块)和业务模块603。其中,服务发包转发代理配套模块602包括:oprtproxy代理模块6021和oprtdisp代理分发模块6022;业务模块泛指所有的业务模块,业务模块603包括:excelproc java导入导出模块6031、workflow java流程模块6032和reimbuese java报销模块6033等,业务模块还包括业务管理接入点(smap),业务管理接入点用来修改、增删业务用户的数据及业务性能,其中业务管理接入点包括:customerwrk-go客户模块6034、rosterwrk通讯录模块6035和jxcerk进销存模块6036。
93.在一些实施例中,customerwrk-go客户模块6034通过直连的方式请求任务分发模块601创建异步任务,由于本技术实施例提供的任务分发系统的架构设计中有返回的步骤,且customerwrk-go客户模块6034是分布式模块,全局模块(例如任务分发模块601)需要通过oprtproxy相关服务发包转发代理配套模块302才能知道要连接哪一个业务模块,因此,在customerwrk-go客户模块6034通过直连的方式请求任务分发模块601创建异步任务后,任务分发模块601通过oprtproxy代理模块6021和oprtdisp代理分发模块6022将异步任务转发至customerwrk-go客户模块6034,customerwrk-go客户模块6034执行异步任务。
94.在一些实施例中,部分业务模块也可以是全局模块,例如,全局模块excelproc java导入导出模块6031通过oprtproxy代理模块6021和oprtdisp代理分发模块6022请求任
务分发模块601创建异步任务,任务分发模块601通过oprtproxy代理模块6021和oprtdisp代理分发模块6022将异步任务转发至excelproc java导入导出模块6031,excelproc java导入导出模块6031执行异步任务。
95.在目前的架构设计中,全局模块之间的交互可以通过服务发包转发代理配套模块602来实现。在一些实施例中,如果业务模块都是单点程序,那业务模块之间是可以直连的,但这样就限制了业务模块只能是单点程序,因此,本技术实施例可以用服务发包转发代理配套模块602来连接业务模块,这样可以兼容并扩展任务分发系统,使得任务分发系统中的业务模块不受限于只能是单点程序。
96.图7是本技术实施例提供的任务分发方法的一个可选的流程图,如图7所示,任务分发模块需要创建任务和调度任务。其中,任务分发模块创建任务可以通过以下步骤实现。
97.步骤s701、任务分发模块后台启动,监听任务分发系统中除任务分发模块之外的其他模块的端口。
98.在本技术实施例中,本技术实施例提供的任务分发方法中,部分模块为全局模块,例如,全局模块可以是任务分发模块。全局模块可以有对应的数据库,数据库用于存储全局性的基础数据及架构配置信息,对本技术实施例提供的任务分发模块通过oprtproxy相关服务发包转发代理配套模块(即路由模块)实现全局控制,并协调各单点程序进行统一业务处理任务。
99.在一些实施例中,部分模块为单点程序,每个单点程序负责指定范围内的业务逻辑处理。
100.在一些事实例中,端口是指任务分发系统中每一模块与其他模块进行交互的接口。
101.步骤s702、接受来自业务模块的创建任务请求。
102.这里,创建任务请求即异步任务创建请求。
103.步骤s703、检验创建任务请求参数的合法性。
104.这里,检验参数的合法性可以通过对创建任务请求(即异步任务创建请求)进行解析,根据异步任务创建请求能否被序列化或反序列化,且异步任务创建请求中是否包括预设标记字段来判断所述异步任务创建请求是否合法。
105.步骤s704、当创建任务请求参数合法时,创建异步预调度任务。
106.这里,异步预调度任务即异步任务。
107.步骤s705、当创建任务请求参数非法时,任务结束。
108.在一些实施例中,任务分发模块调度任务可以通过以下步骤实现:
109.步骤s706、任务分发模块后台启动,监听任务分发系统中除任务分发模块之外的其他模块的端口。
110.步骤s707、任务分发模块加载配置文件。
111.在一些实施例中,配置文件可以是用户预先设置的,配置文件中包含预设的调度规则。这里,预设的调度规则可以是当任务分发模块创建成功异步任务时,任务分发模块立即创建异步任务执行请求,通过路由模块将异步任务发送至业务模块执行;预设的调度规则也可以是当任务分发模块创建成功异步任务时,任务分发模块根据当前任务分发系统中所有已成功创建、但还未执行的异步任务的创建时间,依次通过路由模块将异步任务发送
至业务模块执行,调度规则也可以是其他的规则,本技术实施例不做限制。
112.步骤s708、根据预设的调度规则初始化调度管理器。
113.这里,调度管理器是任务分发模块的一部分,用于按照预设的调度规则将异步任务发送至业务模块。
114.步骤s709、接收异步预调度任务,创建调度请求。
115.这里,调度请求(即异步任务执行请求)用于任务分发模块根据预设的调度规则对异步任务进行分发。
116.步骤s710、调度管理器响应所述调度请求,按照预设的调度规则调度异步预调度任务,得到调度结果。
117.步骤s711、记录调度结果,将调度结果写入数据库中。
118.步骤s712、结束。
119.图8是本技术实施例提供的任务分发方法的一个可选的时序图,如图8所示,customerwrk-go客户模块(即业务模块)、任务分发模块和oprtproxy相关的服务发包转发代理配套模块(路由模块)之间的交互可以通过以下步骤实现:
120.步骤s801、任务分发模块接收来自customerwrk-go客户模块的同步请求,请求创建异步任务。
121.步骤s802、任务分发模块成功创建异步任务。
122.步骤s803、任务分发模块将创建异步任务的结果同步返回至customerwrk-go客户模块。
123.步骤s804、任务分发模块发送执行异步任务请求至oprtproxy相关服务发包转发代理配套模块。
124.步骤s805、oprtproxy相关服务发包转发代理配套模块将执行异步任务请求发送至customerwrk-go客户模块。
125.步骤s806、customerwrk-go客户模块执行异步任务,并通知异步预调度任务的执行结果。
126.步骤s807、customerwrk-go客户模块将执行结果返回至oprtproxy相关服务发包转发代理配套模块。
127.步骤s808、oprtproxy相关服务发包转发代理配套模块将执行结果同步返回至任务分发模块。
128.步骤s809、任务分发模块更新执行结果并保存。
129.这里,更新任务结果是指将步骤s802中任务分发模块成功创建异步任务的结果更新为异步任务已执行的结果。
130.本技术实施例基于任务分发模块和oprtproxy相关服务发包转发代理配套模块,通过oprtproxy相关服务发包转发代理配套模块将将请求作为任务,通过将请求重放的方式,得到任务分发的通用方案,实现了将同步交互模式转化为异步通知模式,优化了用户体验,缓解了服务器性能压力。
131.图9是本技术实施例提供的任务分发装置的组成结构示意图,如图9所示,该任务分发装置900包括:
132.接收模块901,用于接收所述业务模块发送的异步任务创建请求;创建模块902,用
于当所述异步任务创建请求为合法请求时,响应于所述异步任务创建请求,创建异步任务,并生成对应于所述异步任务的响应结果;发送模块903,用于通过所述路由模块向所述业务模块返回所述响应结果,并基于预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务,以使得所述业务模块执行所述异步任务。
133.在一些实施例中,所述发送模块903还用于在所述任务分发模块通过所述路由模块向所述业务模块返回所述响应结果之后,基于所述预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务;或者,在所述任务分发模块通过所述路由模块向所述业务模块返回所述响应结果的同时,基于所述预设的调度规则,通过所述路由模块向所述业务模块发送所述异步任务。
134.在一些实施例中,所述装置还包括:解析模块,用于对所述异步任务创建请求进行解析,得到解析结果;第一确定模块,用于当确定出所述异步任务创建请求能够被序列化或者能够被反序列化,且所述解析结果表明所述异步任务创建请求中包括预设标记字段时,确定所述异步任务创建请求为合法请求。
135.在一些实施例中,所述装置还包括:第二确定模块,用于当所述异步任务创建请求不能被序列化或者不能被反序列化或者所述解析结果表明所述异步任务创建请求中不包括预设标记字段时,确定所述异步任务创建请求为非法请求;终止模块,用于当所述异步任务创建请求为非法请求时,所述任务分发模块终止创建所述异步任务,并生成终止响应结果;第一返回模块,用于通过所述路由模块向所述业务模块返回所述终止响应结果。
136.在一些实施例中,所述异步任务创建请求用于请求创建至少一异步任务;所述发送模块903还用于在所述任务分发模块成功创建每一异步任务之后,根据所创建的异步任务生成异步任务执行请求;通过所述路由模块将所述异步任务执行请求发送至所述业务模块,以请求所述业务模块执行所述异步任务。
137.在一些实施例中,所述异步任务创建请求用于请求创建至少一异步任务;所述发送模块903还用于在所述任务分发模块成功创建每一异步任务之后,确定所述任务分发系统中已创建的且处于待执行状态的全部异步任务、和处于所述待执行状态的每一异步任务的创建时间;根据每一所述异步任务的所述创建时间,对处于所述待执行状态的全部异步任务进行排序,形成待执行异步任务列表;根据所述待执行异步任务列表中的全部异步任务的排列顺序,依次将每一所述异步任务发送至所述业务模块,以使得所述业务模块执行对应的异步任务。
138.在一些实施例中,所述装置还包括:第一发送模块,用于通过直连的方式,向所述任务分发模块发送所述异步任务创建请求;或者,通过所述路由模块将所述异步任务创建请求发送至所述任务分发模块。
139.需要说明的是,本技术实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
140.需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的任务分发方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以
使得一台终端执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read only memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特定的硬件和软件结合。
141.本技术实施例提供一种任务分发设备,图10是本技术实施例提供的任务分发设备的组成结构示意图,如图10所示,所述任务分发设备110至少包括:处理器111和配置为存储可执行指令的计算机可读存储介质112,其中处理器111通常控制所述任务分发设备的总体操作。计算机可读存储介质112配置为存储由处理器111可执行的指令和应用,还可以缓存待处理器111和任务分发设备110中各模块待处理或已处理的数据,可以通过闪存或随机访问存储器(ram,random access memory)实现。
142.本技术实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的任务分发方法,例如,如图2示出的方法。
143.在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(fram,ferromagnetic random access memory)、只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read only memory)、可擦除可编程只读存储器(eprom,erasable programmable read only memory)、带电可擦可编程只读存储器(eeprom,electrically erasable programmable read only memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(cd-rom,compact disk-read only memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
144.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
145.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
146.以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
147.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。
148.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献