任务处理方法、相关设备、存储介质及程序产品与流程

    技术2025-01-17  42


    本申请属于计算机,尤其涉及一种任务处理方法、相关设备、存储介质及程序产品。


    背景技术:

    1、zookeeper是一个开源的、分布式的应用程序协调服务,任务处理服务和定时任务分发服务会注册到zookeeper中。定时任务分发服务监听zookeeper,实时获取最新的任务处理服务集合,并定时获取待处理的任务,获取任务后再将任务分发到任务处理服务集合中的任务处理服务进行处理。目前,定时任务分发服务是单点工作,如果定时任务分发服务出现故障,会导致任务无法进行分配和执行,导致任务处理的可靠性低。


    技术实现思路

    1、本申请实施例提供一种在任务处理方法、相关设备、存储介质及程序产品,能够解决任务处理的可靠性低的问题。

    2、第一方面,本申请实施例提供一种任务处理方法,应用于任务处理系统中的第一任务分发服务器,其中,所述任务处理系统包括zookeeper,以及注册于所述zookeeper的至少两个任务分发服务器和至少一个任务处理服务器;所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述第一任务分发服务器为所述至少两个任务分发服务器中的任一个任务分发服务器;所述方法包括:

    3、在所述zookeeper排队获取所述zookeeper上的分发任务锁;其中,所述分发任务锁的值指示需要执行的任务版本,所述分发任务锁的初始值与每个任务分发服务器的执行版本号的初始值相等;

    4、若获取到所述分发任务锁,则将所述分发任务锁的值与第一执行版本号的值进行比较;其中,所述第一执行版本号为所述第一任务分发服务器的任务版本号;

    5、若所述分发任务锁的值与所述第一执行版本号的值相等,则将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到所述第一任务的第一处理结果的情况下释放所述分发任务锁;其中,所述任务处理服务器集合包括所述至少一个任务处理服务器中正常工作的任务处理服务器。

    6、第二方面,本申请实施例提供了一种任务处理系统,所述任务处理系统包括zookeeper,至少两个任务分发服务器和至少一个任务处理服务器;其中,所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述分发任务锁的值指示需要执行的任务版本,所述分发任务锁的初始值与每个任务分发服务器的执行版本号的初始值相等;

    7、其中,所述zookeeper用于:注册所述至少两个任务分发服务器、所述至少一个任务处理服务器,以及分发任务锁;

    8、所述至少两个任务分发服务器用于:

    9、在所述zookeeper排队获取所述分发任务锁;

    10、若获取到所述分发任务锁,则将所述分发任务锁的值与自身的执行版本号的值进行比较;

    11、若所述分发任务锁的值与自身的执行版本号的值相等,则将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到所述第一任务的第一处理结果的情况下释放所述分发任务锁;其中,所述任务处理服务器集合包括通过所述至少一个任务处理服务器中正常工作的任务处理服务器;

    12、所述至少一个任务处理服务器用于:处理所述第一任务,并向所述第一任务分发服务器返回所述第一处理结果。

    13、第三方面,本申请实施例提供了一种第一任务分发服务器,所述第一任务分发服务器为任务处理系统中的任一个任务分发服务器,其中,所述任务处理系统包括zookeeper,以及注册于所述zookeeper的至少两个任务分发服务器和至少一个任务处理服务器;所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述第一任务分发服务器包括:

    14、获取模块,用于在所述zookeeper排队获取所述zookeeper上的分发任务锁;其中,所述分发任务锁的值指示需要执行的任务版本,所述分发任务锁的初始值与每个任务分发服务器的执行版本号的初始值相等;

    15、比较模块,用于若获取到所述分发任务锁,则将所述分发任务锁的值与第一执行版本号的值进行比较;其中,所述第一执行版本号为所述第一任务分发服务器的任务版本号;

    16、第一操作模块,用于若所述分发任务锁的值与所述第一执行版本号的值相等,则将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到所述第一任务的第一处理结果的情况下释放所述分发任务锁;其中,所述任务处理服务器集合包括所述至少一个任务处理服务器中正常工作的任务处理服务器。

    17、第四方面,本申请实施例提供了一种任务处理设备,设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如第一方面所述的任务处理方法。

    18、第五方面,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的任务处理方法。

    19、第六方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面所述的任务处理方法。

    20、在本申请实施例中,可以在zookeeper上注册至少两个任务分发服务器和一个分发任务锁,其中,每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示其可执行的任务版本;分发任务锁的值指示需要执行的任务版本,且分发任务锁的初始值与任务分发服务器的执行版本号的初始值相等。注册在zookeeper上的至少两个任务分发服务器可以在zookeeper排队获取分发任务锁。对于获取到分发任务锁的某个任务分发服务器,可以将分发任务锁的值与自身的执行版本号的值进行比较;若分发任务锁的值与自身的执行版本号的值相等,即该任务分发服务器可执行的任务版本与需要执行的任务版本一致,该任务分发服务器可以将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到第一任务的处理结果的情况下释放分发任务锁。可见,在本申请实施例中,一方面,任务分发是多点工作,某一个任务分发服务器宕机后,不会影响其他任务分发服务器的工作,从而可以避免单点故障造成的任务无法分发和执行;另一方面,获取到分发任务锁,且可执行的任务版本与分发任务锁指示的需要执行的任务版本一致的任务分发服务器才能执行任务的分发操作,从而可以避免同一个任务被不同的任务分发服务器被重复分发,如此,可以提高任务处理的可靠性。



    技术特征:

    1.一种任务处理方法,其特征在于,应用于任务处理系统中的第一任务分发服务器,其中,所述任务处理系统包括zookeeper,以及注册于所述zookeeper的至少两个任务分发服务器和至少一个任务处理服务器;所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述第一任务分发服务器为所述至少两个任务分发服务器中的任一个任务分发服务器;所述方法包括:

    2.根据权利要求1所述的任务处理方法,其特征在于,在获取到所述第一任务的第一处理结果的情况下,所述释放所述分发任务锁之前,还包括:

    3.根据权利要求1或2所述的方法,其特征在于,所述将所述分发任务锁的第一值与第一执行版本号的第二值进行比较之后,还包括:

    4.根据权利要求1所述的方法,其特征在于,所述在所述zookeeper排队获取所述zookeeper上的分发任务锁之前,还包括:

    5.根据权利要求1所述的方法,其特征在于,所述将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到所述第一任务的第一处理结果的情况下释放所述分发任务锁之后,还包括:

    6.一种任务处理系统,其特征在于,所述任务处理系统包括zookeeper,至少两个任务分发服务器和至少一个任务处理服务器;其中,所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述分发任务锁的值指示需要执行的任务版本,所述分发任务锁的初始值与每个任务分发服务器的执行版本号的初始值相等;

    7.一种第一任务分发服务器,其特征在于,所述第一任务分发服务器为任务处理系统中的任一个任务分发服务器,其中,所述任务处理系统包括zookeeper,以及注册于所述zookeeper的至少两个任务分发服务器和至少一个任务处理服务器;所述至少两个任务分发服务器中的每个任务分发服务器分别设置有一个执行版本号,每个任务分发服务器的执行版本号指示所述任务分发服务器可执行的任务版本;所述第一任务分发服务器包括:

    8.一种任务处理设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如权利要求1至5中任意一项所述的任务处理方法。

    9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1至5中任意一项所述的任务处理方法。

    10.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1至5中任意一项所述的任务处理方法。


    技术总结
    本申请公开了一种任务处理方法、相关设备、存储介质及程序产品,属于计算机技术领域。方法应用于任务处理系统中的第一任务分发服务器,任务处理系统包括ZooKeeper,以及注册于ZooKeeper的至少两个任务分发服务器和至少一个任务处理服务器;每个任务分发服务器的执行版本号指示任务分发服务器可执行的任务版本;方法包括:在ZooKeeper排队获取ZooKeeper上的分发任务锁,分发任务锁的值指示需要执行的任务版本;若获取到分发任务锁,则将分发任务锁的值与第一任务分发服务器的第一执行版本号的值进行比较;若两个值相等,则将待处理的第一任务分发至任务处理服务器集合进行处理,并在获取到第一任务的第一处理结果的情况下释放分发任务锁。本申请可提高任务处理可靠性。

    技术研发人员:胡志翔
    受保护的技术使用者:中移物联网有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-25083.html

    最新回复(0)