本公开涉及计算机,尤其涉及一种任务调度方法、装置、设备及计算机可读存储介质。
背景技术:
1、为了实现任务高并发处理,目前常用的任务调度框架为分布式任务调度框架。
2、通常分布式任务调度框架对应的网络中包括多个节点、以及每个节点分别管理的子网络,该多个节点中有一个主节点,其余节点为从节点。在子网络正常的情况下,由于某些原因导致该多个节点之间出现网络不通的情况,导致整个网络被切分成若干个独立的分区。以切分为两个分区为例,两个分区中其中一个分区内有主节点,另一个分区内没有主节点,此时任一分区中的主节点或从节点会认为是另一分区中的主节点或从节点出现异常。
3、由于主节点才能分配任务,此时,系统会将另一个分区的从节点也提升为主节点,系统就会有两个主节点,两个主节点会对待处理的任务进行重新分配,每个主节点会将待处理的任务都分配到自己的分区进行处理,使得各个分区都会处理原本不在自己分区内的任务,导致同一个任务会在两个分区内分别被处理,导致任务调度异常,同一个任务有多个处理结果,多个处理结果不一致。
技术实现思路
1、为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种任务调度方法、装置、设备及计算机可读存储介质,以解决任务调度异常的问题,避免同一个任务有多个处理结果,多个处理结果不一致的现象发生。
2、第一方面,本公开实施例提供一种任务调度方法,其特征在于,所述方法适用于任务调度系统,所述任务调度系统包括多个服务器,每个服务器包括多个服务进程,每个服务器分别对应一个服务节点,所述多个服务器中目标服务器对应的服务节点是主服务节点;
3、所述方法包括:
4、所述目标服务器获取所述每个服务器上各个服务进程的状态信息;
5、所述目标服务器根据所述每个服务器上各个服务进程的状态信息,确定出目标服务进程;
6、所述目标服务器通过所述目标服务进程从所述主服务节点获取当前任务列表,并通过所述目标服务进程对所述当前任务列表中的任务进行分配。
7、第二方面,本公开实施例提供一种任务调度装置,其特征在于,所述装置适用于任务调度系统,所述任务调度系统包括多个服务器,每个服务器包括多个服务进程,每个服务器分别对应一个服务节点,所述多个服务器中目标服务器对应的服务节点是主服务节点;
8、所述装置包括:
9、获取模块,用于所述目标服务器获取所述每个服务器上各个服务进程的状态信息;
10、确定模块,用于所述目标服务器根据所述每个服务器上各个服务进程的状态信息,确定出目标服务进程;
11、分配模块,用于所述目标服务器通过所述目标服务进程从所述主服务节点获取当前任务列表,并通过所述目标服务进程对所述当前任务列表中的任务进行分配。
12、第三方面,本公开实施例提供一种电子设备,包括:
13、存储器;
14、处理器;以及
15、计算机程序;
16、其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。
17、第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
18、第五方面,本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,该计算机程序或指令被处理器执行时实现如第一方面所述的方法。
19、本公开实施例提供的任务调度方法、装置、设备及计算机可读存储介质,通过所述目标服务器获取所述每个服务器上各个服务进程的状态信息,所述目标服务器根据所述每个服务器上各个服务进程的状态信息,确定出目标服务进程,所述目标服务器通过所述目标服务进程从所述主服务节点获取当前任务列表,并通过所述目标服务进程对所述当前任务列表中的任务进行分配。相较于现有技术中由主节点进行任务分配,当出现网络分区时,会出现多个主节点同时进行任务分配的方案,本公开的服务节点不分配任务,各服务节点用于存储任务列表,各服务节点的数据是一致的,通过各个服务进程的状态信息确定出目标服务进程,通过目标服务进程进行任务分配,可以保证只有一个目标服务进程能够进行任务分配或调度,不会重复分配任务,避免了任务调度异常,同一个任务只会有一个处理结果,进而避免了任务处理异常。
1.一种任务调度方法,其特征在于,所述方法适用于任务调度系统,所述任务调度系统包括多个服务器,每个服务器包括多个服务进程,每个服务器分别对应一个服务节点,所述多个服务器中目标服务器对应的服务节点是主服务节点;
2.根据权利要求1所述的方法,其特征在于,所述各个服务进程的状态信息包括如下至少一种:
3.根据权利要求2所述的方法,其特征在于,所述目标服务器根据所述每个服务器上各个服务进程的状态信息,确定出目标服务进程,包括:
4.根据权利要求3所述的方法,其特征在于,所述目标服务器根据所述各个服务进程的状态信息判断所述服务进程是否与主服务节点建立连接,包括:
5.根据权利要求1所述的方法,其特征在于,所述当前任务列表包括至少一个任务以及每个任务的服务器的标识信息;
6.根据权利要求5所述的方法,其特征在于,所述目标服务器通过所述目标服务进程将所述任务分配给所述任务对应的活跃服务进程,得到任务分配信息之后,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,通过所述目标服务进程对所述当前任务列表中的任务进行分配之后,所述方法还包括:
8.一种任务调度装置,其特征在于,所述装置适用于任务调度系统,所述任务调度系统包括多个服务器,每个服务器包括多个服务进程,每个服务器分别对应一个服务节点,所述多个服务器中目标服务器对应的服务节点是主服务节点;
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。