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

一种分布式调度方法、装置、系统及计算机可读存储介质与流程

2022-06-05 09:05:31 来源:中国专利 TAG:


1.本发明实施例涉及计算机应用技术领域,具体涉及一种分布式调度方法、装置、系统及计算机可读存储介质。


背景技术:

2.定时任务调度解决方案是很多应用系统中经常要定时、周期性执行的一些任务。例如:商品sku(stock keeping unit:库存量单位)定时上架、订单超时自动取消、订单审核、定时同步数据、理财产品计算收益等。
3.然而,目前在开发定时任务调度一般使用delayqueue技术或者spring schedule技术,但无论使用何种技术,都会面临至少两个方面的问题:一是现有技术中的应用服务不能多节点部署,而盲目进行多节点部署所实现的扩容可能会引起重复多次执行而引发系统逻辑的错误。二是应用节点数量的增加并不能给每次执行效率带来提升,没有充分考虑每个节点的任务处理进度,无法实现水平扩展。


技术实现要素:

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.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
43.图1示出了本发明提供的分布式调度方法的第一实施例的流程示意图;
44.图2示出了本发明提供的分布式调度方法的第一实施例中步骤110的流程示意图;
45.图3示出了本发明提供的分布式调度方法的第一实施例中步骤130的流程示意图;
46.图4示出了本发明提供的分布式调度方法的第二实施例的流程示意图;
47.图5示出了本发明提供的分布式调度装置的实施例的结构示意图;
48.图6示出了本发明提供的分布式调度系统的实施例的第一结构示意图;
49.图7示出了本发明提供的分布式调度系统的实施例的第二结构示意图。
具体实施方式
50.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
51.图1示出了本发明提供的分布式调度方法的第一实施例的流程图,该方法由注册中心执行。如图1所示,该方法包括以下步骤:
52.步骤110:根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器。
53.其中,根据不同的预设分片策略,将待执行任务分成至少两个第一分片任务,第一分片任务的数量与运行服务器的数量相同。
54.需要说明的是,本实施例针对多个运行服务器分布式调度的情形,当运行服务器的数量为仅为一个时,则不采用预设分片策略,直接采用该运行服务器对待执行任务进行处理,而不采用本实施例的方法。
55.其中,每个第一分片任务对应一个运行服务器,当任一运行服务器出现宕机等不能正常运行的情况时,也可以是多个第一分片任务对应一个运行服务器。
56.具体地,此时有3台运行服务器可进行任务处理,且此时用户选择的预设分片策略为平均分配算法策略。此时,注册中心将根据平均分配算法策略将待执行任务平均分为3个第一分片任务,并分配至对应的运行服务器中进行处理。
57.步骤120:获取所有注册服务器的工作状态;所述工作状态包括运行状态和宕机状态,所述注册服务器包括处于运行状态的运行服务器和处于宕机状态的宕机服务器。
58.其中,每个注册服务器的工作状态包括:运行状态和宕机状态。
59.具体地,通过注册中心获取当前每个注册服务器为处于运行状态的运行服务器还是处于宕机状态的宕机服务器。
60.步骤130:若至少一个注册服务器的工作状态为宕机状态,且所述待执行任务未完成,则根据所述运行服务器和所述预设分片策略,将所述待执行任务中未完成的部分划分成至少两个第二分片任务。
61.其中,当注册中心获取到当前所有注册服务器中的任一注册服务器的工作状态为宕机状态时,检测待执行任务是否完成;若待执行任务未完成,则根据处于运行状态的运行服务器数量以及预设分片策略,将之前分配至宕机服务器的第一分片任务进行重新分片,分成至少两个第二分片任务,此时,第二分片任务的数量与当前可用的注册服务器(即运行服务器)相同。
62.其中,第二次分片的任务内容为待执行任务未完成的剩余任务,也即是宕机状态的宕机服务器所对应的全部第一分片任务。
63.需要说明的是,若此时可用的注册服务器数量仅为1个时,则不采用预设分片策略,直接采用该注册服务器对待执行任务进行处理。
64.具体地,在某个运行服务器的注册状态发生变化之前,注册服务器的数量为3台,此时其中1台注册服务器的工作状态发生变化且对应的第一分片任务未完成,则将该宕机服务器对应的第一分片任务再根据预设分片策略(如:平均分配算法策略)分成2个第二分片任务。
65.步骤140:将所述第二分片任务分配至所述运行服务器。
66.其中,注册中心将每个第二分片任务分配至对应的运行服务器中进行处理,以完成对待执行任务的处理。
67.本发明实施例通过数据分片将待执行任务分散到不同的运行服务器中运行,并在运行服务器的注册状态发生变化时,生成新的分片任务并发送至对应的运行服务器进行处理,能够解决单个服务器计算能力上限的问题,在充分考虑每个节点的任务处理进度的同时,降低部分任务失败对整体系统的影响,实现了任务处理的弹性扩容。
68.图2示出了本发明提供的一种分布式调度方法的第一实施例中步骤110的具体流程图。如图2所示,步骤110包括以下步骤:
69.步骤111:获取当前运行服务器数量。
70.其中,通过注册中心获取当前运行服务器的数量。
71.步骤112:根据所述当前运行服务器数量确定所述第一分片任务的数量。
72.其中,第一分片任务的数量与当前运行服务器数量相同。
73.步骤113:根据所述预设分片策略和所述第一分片任务的数量生成所述待执行任务的对应数量的所述第一分片任务。
74.其中,预设分片策略影响的是每个第一分片任务的大小,不影响第一分片任务的数量。
75.例如,当预设分片策略为平均分配算法策略时,且当前运行服务器为3台,则注册中心将待执行任务平均分成3个第一分片任务。
76.步骤114:将所述第一分片任务分配至对应的运行服务器进行任务处理。
77.其中,注册中心根据预设分片策略将每个第一分片任务分配至对应的运行服务器中进行处理。
78.需要说明的是,所述预设分片策略为:平均分配算法策略或作业名哈希值奇偶数算法策略或轮转分片策略,还可以根据用户的需求,自行设定自定义分片策略,在此不设限制。
79.本发明实施例进一步明确了通过运行服务器的数量确定分片任务的数量,解决了单个运行服务器处理能力上限的问题,例如当运行服务器出现为宕机时,将宕机服务器对应的第一分片任务重新进行分配,通过弹性扩容的方式解决了单个服务器出现故障时对整体系统的影响。
80.图3示出了本发明提供的一种分布式调度方法的第一实施例中步骤130的具体流程图。如图3所示,步骤130包括以下步骤:
81.步骤131:若至少一个运行服务器的工作状态为宕机状态,获取每个所述第一分片任务的处理进度。
82.其中,当存在任意一个运行服务器注册状态为服务器宕机时,通过注册中心获取每个运行服务器处理第一分片任务的处理进度。
83.此外,在步骤131之后,若所有所述第一分片任务均未开始处理,则根据所述运行服务器和所述预设分片策略,重新生成所述待执行任务的至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器。
84.具体地,当所有的第一分片任务均未开始处理时,此时注册中心将重新根据当前运行服务器的数量和预设分片策略,重新生成与当前运行服务器的数量相同的两个第二分片任务,并将每个第二分片任务分配至对应的运行服务器。
85.步骤132:若任意一个所述第一分片任务开始处理且未完成,则将所述宕机服务器所对应的第一分片任务重新打包,形成第一任务包。
86.其中,当注册中心检测到任意一个第一分片任务已经开始处理且未完成时,则通过注册中心将宕机服务器所对应的第一分片任务重新进行打包,形成第一任务包。此时,若只有一个宕机服务器,则将对应的第一分片任务作为第一任务包即可,若有多个宕机服务器时,就需要将全部宕机服务器对应的所有第一分片任务进行打包,形成第一任务包。
87.步骤133:根据所述运行服务器和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务。
88.其中,步骤133具体包括:
89.步骤1331:确定所述运行服务器的数量是否满足所述预设分片策略的条件。
90.其中,预设分片策略的条件可以是:运行服务器的数量为至少两个。如果运行服务器的数量不少于两个,则满足该条件,执行后续工作;若少于两个时,则不执行第二次分片的工作。
91.具体地,通过注册中心检测当前所有注册服务器中可用的运行服务器的数量。
92.步骤1332:若满足,则根据所述预设分片策略将所述第一任务包划分成至少两个第二分片任务。
93.其中,若满足上述条件,则根据所述预设分片策略和运行服务器的数量生成对应数量的第二分片任务。
94.若不满足上述条件,此时运行服务器的数量仅为一个时,也可以将第一任务包中的任务发送给该运行服务器进行处理。
95.预设分片策略的条件也可以是其他条件,满足条件时才执行预设分片策略,当不满足条件时,则执行默认的取余分片策略。
96.本发明实施例进一步明确了当运行服务器的注册状态为宕机时,将宕机服务器对应的第一分片任务重新进行分配,通过弹性扩容的方式解决了单个服务器出现故障时对整体系统的影响。
97.图4示出了本发明提供的一种分布式调度方法的第二实施例的流程图,该方法由注册中心执行,所述注册服务器还包括新增服务器。如图4所示,该方法包括以下步骤:
98.步骤210:根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器。
99.步骤220:获取所有注册服务器的工作状态;所述工作状态包括运行状态、宕机状态和新增状态,所述注册服务器包括处于运行状态的运行服务器、处于宕机状态的宕机服务器和处于新增状态的新增服务器。
100.步骤230:若存在所述新增服务器,获取每个所述第一分片任务的处理进度。
101.其中,当注册中心获取到任意一个注册服务器为新增服务器时,通过注册中心获取每个第一分片任务的处理进度。
102.步骤240:若至少一个所述第一分片任务未完成,则维持所述第一分片任务直至完成所述待执行任务。
103.其中,当注册中心检测到任意一个第一分片任务未完成时,则维持原运行服务器的分片方式并等待所有第一分片任务完成。
104.步骤250:若所有所述第一分片任务均已完成,则将所述新增服务器作为新的运行服务器。
105.其中,当所有的第一分片任务均已完成时,注册中心则将新增服务器作为新的待执行任务的运行服务器。
106.例如,当原有的运行服务器为4台时,此时在待执行任务的处理过程中,增加了1台运行服务器,此时,该运行服务器不进行任务的处理,需等待此时正在处理中的待执行任务处理完成后,将新增的运行服务器作为新的待执行任务的运行服务器,此时,新的待执行任务的运行服务器数量为5台。
107.本发明实施例通过在待执行任务处理中检测到存在新增服务器时,判断此时待执行任务是否完成,在待执行任务完成时,将新增服务器作为新的待执行任务的运行服务器进行任务处理,能够实现在任务调度中的弹性扩容,进一步解决了单个运行服务器计算能力上限的问题,提高了任务处理的效率。
108.图5示出了本发明提供的一种分布式调度装置的实施例的结构示意图。如图5所示,该装置300包括:第一处理模块310、获取模块320、第二处理模块330和运行模块340。
109.第一处理模块310,用于根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器;
110.获取模块320,用于获取所有注册服务器的注册状态;所述工作状态包括运行状态和宕机状态,所述注册服务器包括处于运行状态的运行服务器和处于宕机状态的宕机服务器;
111.第二处理模块330,用于若至少一个注册服务器的工作状态为宕机状态,且所述待执行任务未完成,则根据所述运行服务器和所述预设分片策略,将所述待执行任务中未完成的部分划分成至少两个第二分片任务;
112.运行模块340,用于将所述第二分片任务分配至所述运行服务器。
113.在一种可选的方式中,所述第二处理模块330具体用于:
114.若至少一个运行服务器的工作状态为宕机状态,获取每个所述第一分片任务的处理进度;
115.若任意一个所述第一分片任务开始处理且未完成,则将所述宕机服务器所对应的第一分片任务重新打包,形成第一任务包;
116.根据所述运行服务器和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务。
117.在一种可选的方式中,所述若至少一个运行服务器的工作状态为宕机状态,获取每个所述第一分片任务的处理进度之后,还包括:
118.若所有所述第一分片任务均未开始处理,则根据所述运行服务器和所述预设分片策略,重新生成所述待执行任务的至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器。
119.在一种可选的方式中,所述根据所述运行服务器和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务,包括:
120.确定所述运行服务器的数量是否满足所述预设分片策略的条件;
121.若满足,则根据所述预设分片策略将所述第一任务包划分成至少两个第二分片任务。
122.在一种可选的方式中,所述注册服务器还包括新增服务器;所述获取模块320之后,还包括:
123.若存在所述新增服务器,获取每个所述第一分片任务的处理进度;
124.若至少一个所述第一分片任务未完成,则维持所述第一分片任务直至完成所述待执行任务;
125.若所有所述第一分片任务均已完成,则将所述新增服务器作为新的运行服务器。
126.在一种可选的方式中,所述第一处理模块310具体用于:
127.获取当前运行服务器数量;
128.根据所述当前运行服务器数量确定所述第一分片任务的数量;
129.根据所述预设分片策略和所述第一分片任务的数量生成所述待执行任务的对应数量的所述第一分片任务;
130.将所述第一分片任务分配至对应的运行服务器进行任务处理。
131.在一种可选的方式中,所述预设分片策略为:平均分配算法策略或作业名哈希值奇偶数算法策略或轮转分片策略或自定义分片策略。
132.本发明实施例通过数据分片将待执行任务分散到不同的运行服务器中运行,并在运行服务器的注册状态发生变化时,生成新的分片任务并发送至对应的运行服务器进行处理,能够解决单个服务器计算能力上限的问题,在充分考虑每个节点的任务处理进度的同时,降低部分任务失败对整体系统的影响,实现了任务处理的弹性扩容。
133.图6示出了本发明提供的一种分布式调度系统400的实施例的第一结构示意图。如图6所示,该分布式调度系统400包括:注册中心410和至少一个注册服务器420;所述注册服务器420包括处于运行状态的运行服务器421和处于宕机状态的宕机服务器422;
134.所述注册中心410用于:根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器420;
135.所述注册服务器420用于:对所述第一分片任务进行任务处理;
136.所述注册中心410还用于:获取所有注册服务器420的工作状态;若至少一个注册服务器420的工作状态为宕机状态,且所述待执行任务未完成,则根据所述运行服务器421和所述预设分片策略,将所述待执行任务中未完成的部分划分成至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器421;
137.所述运行服务器421用于:对所述第二分片任务进行处理。
138.在一种可选的方式中,所述注册中心410具体用于:
139.若至少一个运行服务器421的工作状态为宕机状态,获取每个所述第一分片任务的处理进度;
140.若任意一个所述第一分片任务开始处理且未完成,则将所述宕机服务器422所对应的第一分片任务重新打包,形成第一任务包;
141.根据所述运行服务器421和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器421。
142.在一种可选的方式中,所述若至少一个运行服务器421的工作状态为宕机状态,获取每个所述第一分片任务的处理进度之后,还包括:
143.若所有所述第一分片任务均未开始处理,则根据所述运行服务器421和所述预设分片策略,重新生成所述待执行任务的至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器。
144.在一种可选的方式中,所述根据所述运行服务器421和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务,包括:
145.确定所述运行服务器421的数量是否满足所述预设分片策略的条件;
146.若满足,则根据所述预设分片策略将所述第一任务包划分成至少两个第二分片任务。
147.图7示出了本发明提供的一种分布式调度系统400的实施例的第二结构示意图。如图7所示,在一种可选的方式中,所述注册服务器420还包括新增服务器423;所述获取所有注册服务器420的运行状态之后,还包括:
148.若存在所述新增服务器423,获取每个所述第一分片任务的处理进度;
149.若至少一个所述第一分片任务未完成,则维持所述第一分片任务直至完成所述待执行任务;
150.若所有所述第一分片任务均已完成,则将所述新增服务器423作为新的运行服务器421。
151.在一种可选的方式中,所述注册中心410具体用于:
152.获取当前运行服务器421数量;
153.根据所述当前运行服务器421数量确定所述第一分片任务的数量;
154.根据所述预设分片策略和所述第一分片任务的数量生成所述待执行任务的对应数量的所述第一分片任务;
155.将所述第一分片任务分配至对应的运行服务器421。
156.在一种可选的方式中,所述预设分片策略为:平均分配算法策略或作业名哈希值奇偶数算法策略或轮转分片策略或自定义分片策略。
157.本发明实施例通过数据分片将待执行任务分散到不同的运行服务器中运行,并在运行服务器的注册状态发生变化时,生成新的分片任务并发送至对应的运行服务器进行处理,能够解决单个服务器计算能力上限的问题,在充分考虑每个节点的任务处理进度的同时,降低部分任务失败对整体系统的影响,实现了任务处理的弹性扩容。
158.本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在分布式调度装置上运行时,使得所述分布式调度装置执行上述任意方法实施例中的分布式调度方法。
159.可执行指令具体可以用于使得分布式调度装置执行以下操作:
160.根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器;
161.获取所有注册服务器的工作状态;所述工作状态包括运行状态和宕机状态,所述注册服务器包括处于运行状态的运行服务器和处于宕机状态的宕机服务器;
162.若至少一个注册服务器的工作状态为宕机状态,且所述待执行任务未完成,则根据所述运行服务器和所述预设分片策略,将所述待执行任务中未完成的部分划分成至少两个第二分片任务;
163.将所述第二分片任务分配至所述运行服务器。
164.在一种可选的方式中,所述若至少一个运行服务器的工作状态为宕机状态,且所述待执行任务未完成,则根据所述运行服务器和所述预设分片策略,将所述待执行任务中未完成的部分划分成至少两个第二分片任务,包括:
165.若至少一个运行服务器的工作状态为宕机状态,获取每个所述第一分片任务的处理进度;
166.若任意一个所述第一分片任务开始处理且未完成,则将所述宕机服务器所对应的第一分片任务重新打包,形成第一任务包;
167.根据所述运行服务器和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务。
168.在一种可选的方式中,所述若至少一个运行服务器的工作状态为宕机状态,获取每个所述第一分片任务的处理进度之后,还包括:
169.若所有所述第一分片任务均未开始处理,则根据所述运行服务器和所述预设分片策略,重新生成所述待执行任务的至少两个第二分片任务,并将所述第二分片任务分配至所述运行服务器。
170.在一种可选的方式中,所述根据所述运行服务器和所述预设分片策略,将所述第一任务包划分成至少两个第二分片任务,包括:
171.确定所述运行服务器的数量是否满足所述预设分片策略的条件;
172.若满足,则根据所述预设分片策略将所述第一任务包划分成至少两个第二分片任务。
173.在一种可选的方式中,所述注册服务器还包括新增服务器;所述获取所有注册服务器的运行状态之后,还包括:
174.若存在所述新增服务器,获取每个所述第一分片任务的处理进度;
175.若至少一个所述第一分片任务未完成,则维持所述第一分片任务直至完成所述待执行任务;
176.若所有所述第一分片任务均已完成,则将所述新增服务器作为新的运行服务器。
177.在一种可选的方式中,所述根据预设分片策略,将待执行任务划分成至少两个第一分片任务,并将所述第一分片任务分配至对应的注册服务器,包括:
178.获取当前运行服务器数量;
179.根据所述当前运行服务器数量确定所述第一分片任务的数量;
180.根据所述预设分片策略和所述第一分片任务的数量生成所述待执行任务的对应数量的所述第一分片任务;
181.将所述第一分片任务分配至对应的运行服务器进行任务处理。
182.在一种可选的方式中,所述预设分片策略为:平均分配算法策略或作业名哈希值奇偶数算法策略或轮转分片策略或自定义分片策略。
183.本发明实施例通过数据分片将待执行任务分散到不同的运行服务器中运行,并在运行服务器的注册状态发生变化时,生成新的分片任务并发送至对应的运行服务器进行处理,能够解决单个服务器计算能力上限的问题,在充分考虑每个节点的任务处理进度的同时,降低部分任务失败对整体系统的影响,实现了任务处理的弹性扩容。
184.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。此外,本发明实施例也不针对任何特定编程语言。
185.在此处所提供的说明书中,说明了大量具体细节。然而能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。类似地,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。其中,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
186.本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外。
187.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

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

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

相关文献