本发明涉及计算机,尤其涉及一种任务调度方法、装置、设备及存储介质。
背景技术:
1、随着目前互联网技术的不断发展,需要通过计算机技术处理的数据及任务量越来越多,对服务器处理能力提出越来越高的要求。对于一个互联网平台型的产品而言,往往会被大量用户在同一时间段请求服务。服务器收到大量任务请求指令后,会将对应的任务提交到一个抽象的队列,将任务堆积起来,然后通过一些调度策略,从队列中选取某个或某些具体任务并触发执行。
2、在现有的技术方案中一般通过加入全局过滤器调整任务的优先级,根据用户优先级对任务进行调度执行,但是对于多个不同优先级的用户,无法在高优先级用户执行任务时,同时兼顾其他用户的任务,从而出现高优先级用户的单条任务的处理时间过长,导致其他用户的任务排队时间延长的现象。特别是在高优先级用户处理任务量很大,低优先级用户提交的任务甚至会等待几天才会被处理,造成任务堆积。
技术实现思路
1、本发明的目的是提供一种任务调度方法、装置、设备及存储介质,能够同时兼顾当前所有用户的任务,有效避免任务堆积。
2、为实现上述目的,本发明实施例提供了一种任务调度方法,包括:
3、获取当前所有用户的优先级;
4、根据所述优先级确认每一所述用户的理论单次处理任务数量;
5、根据每一所述用户的待处理任务及对应的所述理论单次处理任务数量,获取理论待处理任务队列;
6、将所述理论待处理任务队列中的待处理任务发送至任务队列进行任务处理。
7、作为上述方案的改进,所述根据所述优先级确认每一所述用户的理论单次处理任务数量,包括:
8、将每一所述用户的优先级相加,得到所有所述用户的总优先级;
9、将所述优先级与所述总优先级之比和预设的系统并发数相乘,得到每一相乘结果;
10、对每一所述相乘结果进行取整处理,得到每一所述用户的理论单次处理任务数量。
11、作为上述方案的改进,所述根据每一所述用户的待处理任务及对应的所述理论单次处理任务数量,获取理论待处理任务队列,包括:
12、当所述用户的待处理任务的数量大于或等于对应的所述理论单次处理任务数量,从所述用户的待处理任务中提取符合所述理论单次处理任务数量的待处理任务;
13、当所述用户的待处理任务的数量小于对应的所述理论单次处理任务数量,从所述用户的待处理任务中提取所有的待处理任务;
14、将每一所述用户提取出的所有待处理任务按照任务上传顺序进行排序,形成理论待处理任务队列。
15、作为上述方案的改进,所述将所述理论待处理任务队列中的任务发送至任务队列进行任务处理,包括:
16、根据预设的系统并发数和所述理论待处理任务队列的理论长度,对所述理论待处理任务队列进行删减、增添或维持原样,得到实际待处理任务队列;其中,所述实际待处理任务队列的实际长度小于或等于所述系统并发数;
17、将所述实际待处理任务队列中的所有待处理任务发送至任务队列进行任务处理。
18、作为上述方案的改进,所述根据预设的系统并发数和所述理论待处理任务队列的理论长度,对所述理论待处理任务队列进行删减、增添或维持原样,得到实际待处理任务队列,包括:
19、当所述理论待处理任务队列的理论长度大于预设的系统并发数时,从所述理论待处理任务队列中删减排在最末尾的n个待处理任务,得到实际待处理任务队列;其中,在所述理论待处理任务队列中的待处理任务按照任务上传的先后顺序进行排序,n表示所述理论长度与所述系统并发数的差值;
20、当所述理论长度等于所述系统并发数时,将所述理论待处理任务队列作为所述实际待处理任务队列;
21、当所述理论长度小于所述系统并发数时,从所有所述用户的待处理任务中提取最先上传的m个待处理任务组成补充任务队列,将所述理论待处理任务队列与所述补充任务队列组合,得到实际待处理任务队列;其中,m表示所述系统并发数与所述理论长度的差值,所述m个待处理任务均不在所述理论待处理任务队列中。
22、作为上述方案的改进,在所述获取当前所有用户的优先级之前,所述任务调度方法还包括:
23、当接收到所述用户上传的任务时,计算当前资源使用率,以在所述当前资源使用率为100%时,获取当前所有所述用户的优先级。
24、作为上述方案的改进,所述获取当前所有用户的优先级,包括:
25、获取当前所有用户的任务信息;其中,所述任务信息包括以下一种或其组合用户性质、用户的总任务数量,任务处理平均时长;
26、根据所述任务信息,确认当前所有所述用户的优先级。
27、为实现上述目的,本发明实施例还提供了一种任务调度装置,包括:
28、优先级获取模块,用于获取当前所有用户的优先级;
29、任务数量获取模块,用于根据所述优先级确认每一所述用户的理论单次处理任务数量;
30、理论待处理任务队列获取模块,用于根据每一所述用户的待处理任务及对应的所述理论单次处理任务数量,获取理论待处理任务队列;
31、任务处理模块,用于将所述理论待处理任务队列中的任务发送至任务队列进行任务处理。
32、为实现上述目的,本发明实施例还提供了一种任务调度设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上述的任务调度方法。
33、为实现上述目的,本发明实施例还提供了一种计算机可读存储介质所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如上述的任务调度方法。
34、与现有技术相比,本发明实施例提供的一种任务调度方法、装置、设备及存储介质,通过获取当前所有用户的优先级;根据所述优先级确认每一所述用户的理论单次处理任务数量;根据每一所述用户的待处理任务及对应的所述理论单次处理任务数量,获取理论待处理任务队列;将所述理论待处理任务队列中的待处理任务发送至任务队列进行任务处理。由此可见,本发明实施例能够在有限资源的情况下实现对大量的任务进行重新排版处理,在单条理论待处理任务队列中,可以考虑到当前所有的用户,并按照用户的优先级进行资源的合理分配,避免了高优先级用户占据资源比例过大,其他用户的任务长时间得不到处理的情况,队列利用率得到提升,有效避免任务堆积。
1.一种任务调度方法,其特征在于,包括:
2.如权利要求1所述的任务调度方法,其特征在于,所述根据所述优先级确认每一所述用户的理论单次处理任务数量,包括:
3.如权利要求1所述的任务调度方法,其特征在于,所述根据每一所述用户的待处理任务及对应的所述理论单次处理任务数量,获取理论待处理任务队列,包括:
4.如权利要求1所述的任务调度方法,其特征在于,所述将所述理论待处理任务队列中的任务发送至任务队列进行任务处理,包括:
5.如权利要求4所述的任务调度方法,其特征在于,所述根据预设的系统并发数和所述理论待处理任务队列的理论长度,对所述理论待处理任务队列进行删减、增添或维持原样,得到实际待处理任务队列,包括:
6.如权利要求1所述的任务调度方法,其特征在于,在所述获取当前所有用户的优先级之前,所述任务调度方法还包括:
7.如权利要求1所述的任务调度方法,其特征在于,所述获取当前所有用户的优先级,包括:
8.一种任务调度装置,其特征在于,包括:
9.一种任务调度设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1~7任一项所述的任务调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1~7任一项所述的任务调度方法。