System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及云计算,尤其涉及一种任务调度方法和系统、电子设备和存储介质。
技术介绍
1、目前,在针对批量任务处理过程中,主要采用以下方案:1.单台服务器定时服务获取任务列表,串行执行或者通过线程池或者其它方式并发处理任务;2.多台服务器部署,水平扩容,实现高可用。
2、但是,通过单台服务器处理所有任务,存在执行效率较低,即使采用多线程并行处理,也可能在下一个任务周期前无法完成所有当前批次的所有任务,以及在出现未考虑到的异常场景时,一个任务的处理异常,可能影响所有任务的处理,进而各个线程均无法执行下一批次任务的问题;当采用多台服务器部署时,相关技术中无法有效利用所有服务器的计算处理能力,存在资源浪费的问题。
3、因此,相关技术中存在当进行批量任务处理时存在资源浪费,无法有效利用服务器的计算处理能力的问题。
技术实现思路
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、所述第一分配任务线程,还用于根据所述当前活跃进程列表以及当前待分配任务列表,确定出目标任务分配列表,其中,所述当前待分配任务列表是用于指示至少一个待分配任务的列表,所述目标任务分配列表用于指示所述待分配任务所分配至的活跃进程;本文档来自技高网...
【技术保护点】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程获取来自于目标存储模块的当前活跃进程列表之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述第一活跃进程获取来自于目标存储模块的当前活跃进程列表,包括:
4.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程根据所述当前活跃进程列表以及当前待分配任务列表,确定出目标任务分配列表之前,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程根据所述当前活跃进程列表以及当前待分配任务列表,确定出目标任务分配列表,与所述目标存储模块根据获取的所述目标任务分配列表,确定出与第二活跃进程对应的目标任务分配子表之间,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述目标存储模块根据获取的所述目标任务分配列表,确定出与第二活跃进程对应的目标任务分配子表,包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第二活跃进程在获取所述目标任务分配子表之后,按
8.一种任务调度系统,其特征在于,包括:位于第一活跃进程中的第一分配任务线程,目标存储模块和位于第二活跃进程中的第二任务列表执行线程;
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至7中任一项中所述的方法步骤。
...【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程获取来自于目标存储模块的当前活跃进程列表之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述第一活跃进程获取来自于目标存储模块的当前活跃进程列表,包括:
4.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程根据所述当前活跃进程列表以及当前待分配任务列表,确定出目标任务分配列表之前,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,在所述第一活跃进程根据所述当前活跃进程列表以及当前待分配任务列表,确定出目标任务分配列表,与所述目标存储模块根据获取的所述目标任务分配列表,确定出与第二活跃进程对应的目标任务分配子表之间,所述方法还包括:
6.根据权利要求1所述...
【专利技术属性】
技术研发人员:胡丹华,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。