分布式定时任务管理方法、装置、设备及存储介质与流程

    专利查询2022-08-21  72



    1.本技术涉及分布式定时任务技术领域,特别是涉及一种分布式定时任务管理方法、装置、设备及存储介质。


    背景技术:

    2.大多数系统都会遇到关于定时任务相关的功能,例如定时备份数据库,定时修改某些信息,订单30分钟自动消单等,它是每个互联网系统的重要功能部分,可以满足周期性执行任务的需求。
    3.随着互联网技术的发展,对系统的可靠性愈发重视,由此诞生的集群解决方案从根本性上解决了问题,但是却让定时任务的运行变的更为复杂。业内对集群定时任务有着很多非常优秀的解决技术,比如xxl-job,支持集群,支持负载均衡,支持job补偿,支持动态定时规则,支持job日志等,但是这类技术会加大开发成本,增加系统复杂度。以xxl-job为例,接入后需要在数据库创建16张相关数据表,需要配置调度中心,需要引入相关资源等,并且需要开发人员对该技术有一定的知识储备。
    4.基于redis实现分布式定时任务在行业内也是一种可行的实现方案,redis接入方便快速,是绝大部分系统的基础架构选项,所以基于redis实现的分布式定时任务方案,并不会为了需要接入redis而产生额外开发成本。不过目前现有的方案只能对单个任务在单个节点进行管理,针对可重复执行的任务,不能同一个任务在多个节点运行,并进行有效且便捷的管理。


    技术实现要素:

    5.本技术提供一种分布式定时任务管理方法、装置、设备及存储介质,以解决现有的分布式定时任务方案中同一任务多节点无法运行和管理的问题。
    6.为解决上述技术问题,本技术采用的一个技术方案是:提供一种分布式定时任务管理方法,其应用于分布式系统,该分布式系统包括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,包括:当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列;
    7.分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。
    8.作为本技术的进一步改进,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作还包括:
    9.当自身节点执行不可同时执行的定时任务请求时,判断当前节点ip是否为当前节点ip的任务,
    10.若是,则当前节点对列表数据进行分析,对当前节点ip为自身的任务进行续约操作,更新续约时间为当前时间;
    11.若否,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理。
    12.作为本技术的进一步改进,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理还包括:
    13.该节点的续约时间与当前时间不满足续约条件时,则当前节点不执行续约操作。
    14.作为本技术的进一步改进,将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理具体包括:
    15.当redis有不可同时执行定时任务请求的操作请求时,会自动调用任务处理请求来处理发布的数据;
    16.任务处理请求首先将该操作请求添加到消息队列中,同时轮询该消息队列,消息队列中有数据时就取出消息队列中的数据进行发布,进行当前节点ip续约处理。
    17.作为本技术的进一步改进,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作具体包括:
    18.当可同时执行的定时任务第一节点加入分布式系统时,第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,第一节点加入信息包括第一节点的节点标识;
    19.可同时执行的定时任务第一节点所加入的最下层的组的公共节点接收到第一节点加入信息后,向公共节点所在的上一层的组中所有节点发送第一节点加入信息,以使得其它的公共节点将第一节点加入信息传递至分布式系统中的所有可同时执行的任务执行节点;
    20.可同时执行的任务执行节点接收任务处理请求,根据预设定时任务执行逻辑执行相应的任务执行操作,得到任务执行结果。
    21.作为本技术的进一步改进,当第一节点所加入的最下层的组的公共节点向公共节点所在的上一层的组中所有节点发送第一节点加入信息包括:
    22.第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址,采用组播的方式向公共节点所在的上一层的组中所有节点发送第一节点加入信息。
    23.作为本技术的进一步改进,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作之后还包括:
    24.任务执行节点将任务执行结果存储至任务执行日志中。
    25.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种分布式定时任务管理装置,包括:发送模块,当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列;
    26.执行模块,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。
    27.为解决上述技术问题,本技术采用的再一个技术方案是:提供一种计算机设备,计算机设备包括处理器、与处理器耦接的存储器,存储器中存储有程序指令,程序指令被处理器执行时,使得处理器执行上述中任一项的分布式定时任务管理方法的步骤。
    28.为解决上述技术问题,本技术采用的再一个技术方案是:提供一种存储介质,存储有能够实现上述中任一项的分布式定时任务管理方法的程序指令。
    29.本技术的有益效果是:本技术的分布式定时任务管理方法其应用于分布式系统,该分布式系统包括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列后,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,再根据操作请求对定时任务执行相应的操作。其解决了现有的分布式定时任务方案中同一任务多节点无法运行和管理的问题,可以完成包括同一任务多节点、同一任务单节点运行的共同管理要求。
    附图说明
    30.图1是本发明实施例的分布式定时任务管理方法的流程示意图;
    31.图2是本发明另一实施例的分布式定时任务管理方法的流程示意图;
    32.图3是本发明另一实施例的分布式定时任务管理方法的流程示意图;
    33.图4是本发明实施例的分布式定时任务管理装置的功能模块示意图;
    34.图5是本发明实施例的计算机设备的结构示意图;
    35.图6是本发明实施例的存储介质的结构示意图。
    具体实施方式
    36.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
    37.本技术中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本技术实施例中所有方向性指示(诸如上、下、左、右、前、后
    ……
    )仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
    38.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
    39.图1是本发明实施例的分布式定时任务管理方法的流程示意图。需注意的是,若有实质上相同的结果,本技术的方法并不以图1所示的流程顺序为限。如图1所示,该方法应用
    于分布式系统,该分布式系统包括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,其包括:
    40.步骤s1、当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列。
    41.具体地,定时任务调度是一种按照指定时间策略周期性执行任务的应用业务系统或模块,是应用软件中一个常见的模块,用于处理需重复并周期性调用的任务,定时任务调度一般被用于数据同步、交易对账、异常处理等场景中。为了保证高可用和高容错性,大规模的云平台或者服务器集群通常采用分布式架构,因此分布式定时任务调度应运而生。分布式系统集群服务器配置有多个集群节点,当用户通过http发出多个请求时,多个用户请求进入负载均衡服务器,例如nginx服务器,负载均衡服务器将多个用户请求转发分配到集群服务器的多个集群节点上。当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列。
    42.步骤s2、分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。
    43.具体地,在实际业务中,往往存在高频率需要处理大批量数据的场景,比如电商平台在1小时的活动期间生成的100000笔订单,这笔订单将于15天后进行自动收货的状态翻转,若单台节点的处理能力为10000笔/小时,则需要10个节点同时运行此任务才能满足不出现业务时间延迟的要求。分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。系统并执行相应的任务执行操作,并在获取任务启停指令时,启动或停止所有节点正在运行的目标任务,能够保持服务进程读到参数数据,减少生产环境中出现故障时对部分业务造成的影响,维护系统稳定运行,本地缓存作为一级缓存,可以保证服务进程能从中读取大多数需要的参数,避免频繁读二级缓存或数据库,且在redis集中缓存或数据库出现无法服务的情况时,保证大多数交易能坚持一段时间不受故障影响平稳进行,使交易能够继续进行不会直接失败,实现了高可用性,服务进程可直接读数据库;redis集群和数据库都具有高可用性,确保存储节点的变化和宕机不会影响整个集群的对外服务;数据库的主备多副本模式可以在数据库主节点不可用时可以切换至数据库从节点,对应用透明,使应用在不受影响的情况下从数据库中读写数据;整体方案可以维护系统稳定运行。
    44.进一步地,步骤s2、分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作还包括:
    45.步骤s3、当自身节点执行不可同时执行的定时任务请求时,判断当前节点ip是否为当前节点ip的任务,
    46.若是,则当前节点对列表数据进行分析,对当前节点ip为自身的任务进行续约操作,更新续约时间为当前时间。
    47.具体地,集群节点在自身维持一个存续检测任务,该任务每隔60秒请求redis一次,获取所有业务任务列表。任务列表中保存有业务任务id,续约时间,续约节点ip。当前节点对列表数据进行分析,对节点ip为自身的任务进行续约操作,即更新续约时间为当前时间。
    48.步骤s4、若否,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理。
    49.具体地,对节点ip不为自身的任务,比较续约时间与当前时间是否超过60秒,超时即代表任务相应节点未在规定的60秒内如期续约,即判定相应节点已关闭或宕机,此任务即为未续约状态,当前节点将接管此未续约任务,修改任务续约节点ip为自身,并更新续约时间为当前时间。
    50.进一步地,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理还包括:
    51.步骤s5、该节点的续约时间与当前时间不满足续约条件时,则当前节点不执行续约操作。
    52.具体地,集群节点在自身维持一个存续检测任务,该任务每隔60秒请求redis一次,获取所有业务任务列表。任务列表中保存有业务任务id,续约时间,续约节点ip。该节点的续约时间与当前时间超过60秒,超时即代表任务相应节点未在规定的60秒内如期续约,即判定相应节点已关闭或宕机,此任务即为未续约状态,当前节点将接管此未续约任务。
    53.进一步地,将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理具体包括:
    54.步骤s41、当redis有不可同时执行定时任务请求的操作请求时,会自动调用任务处理请求来处理发布的数据。
    55.具体地,当redis有数据发布时会自动调用任务处理请求来处理发布的数据,待处理的数据块是按照数据块的数据量或者个数来分配的,分配的参考值是以分布式节点的数据处理能力,即分布式节点的硬件处理能力。此时redis服务器会向订阅了该任务的目标节点发送通知。
    56.步骤s42、任务处理请求首先将该操作请求添加到消息队列中,同时轮询该消息队列,消息队列中有数据时就取出消息队列中的数据进行发布,进行当前节点ip续约处理。
    57.具体地,依据第一次存入各分布式节点的数据块的数量以及各分布式节点实际处理数据块的数量,确定各分布式节点的数据处理本地化率;或者,依据存放在各分布式节点本地的数据块所需的处理时间以及各分布式节点的实际数据处理时间,确定各分布式节点的数据处理本地化率依据各分布式节点的数据处理本地化率调整各分布式节点的数据处理能力,任务处理请求首先将该操作请求添加到内置消息队列中,同时轮询该消息队列,消息队列中有数据时就取出消息队列中的数据进行发布。
    58.进一步地,如图2所示,步骤s2、分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作具体包括:
    59.步骤s21、当可同时执行的定时任务第一节点加入分布式系统时,第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,第一节点加入信息包括第一节点的节点标识。
    60.具体地,若可同时执行的定时任务第一节点加入最下层中的第一组,即底层第一组,则第一节点向底层第一组中所有节点发送第一节点加入信息;其中,需要说明的是,分布式系统中节点的节点标识具体用于对一个节点进行定位,接收到第一节点加入信息的节
    点,可以通过第一节点信息所携带的第一节点的节点标识,找到第一节点;作为示例而非限定,分布式系统中节点的节点标识可以是节点的ip地址。
    61.步骤s22、可同时执行的定时任务第一节点所加入的最下层的组的公共节点接收到第一节点加入信息后,向公共节点所在的上一层的组中所有节点发送第一节点加入信息,以使得其它的公共节点将第一节点加入信息传递至分布式系统中的所有可同时执行的任务执行节点。
    62.具体地,第一节点所加入的最下层的组的公共节点接收到第一节点加入信息后,向公共节点所在的上一层的组中所有节点发送第一节点加入信息,若公共节点所在的上一层不是最上层,则公共节点所在的上一层的组中所有节点继续向上转发第一节点加入信息,直至第一节点加入信息被传递至最上层中的所有节点;接收到第一节点加入信息的最上层的节点向其所在的下一层的组中所有节点发送第一节点加入信息,若最上层的节点所在的下一层不是最下层,则最上层的节点所在的下一层的组中所有节点继续向下转发第一节点加入信息,直至第一节点加入信息被传递至最下层中的所有节点。
    63.步骤s23、可同时执行的任务执行节点接收任务处理请求,根据预设定时任务执行逻辑执行相应的任务执行操作,得到任务执行结果。
    64.具体地,可同时执行的任务执行节点接收任务处理请求,根据预设定时任务执行逻辑执行相应的任务执行操作,得到任务执行结果。以执行定时任务执行节点的调度任务。上述任务调度过程基于内存而不是基于数据库实现,大大提高了任务调度的效率,同时可以实现高可用。
    65.进一步地,当第一节点所加入的最下层的组的公共节点向公共节点所在的上一层的组中所有节点发送第一节点加入信息包括:
    66.步骤s221、第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址,采用组播的方式向公共节点所在的上一层的组中所有节点发送第一节点加入信息。
    67.具体地,可以在第一节点中预先配置所加入的最下层的组的组播地址,第一节点根据所加入的最下层的组的组播地址,采用组播的方式向所加入的最下层的组中所有的节点发送第一节点加入信息,以提高第一节点加入信息的传播效率。还可以在分布式系统的每个节点中预先配置位于每层的预选组的组播地址,每个节点从位于每层的预选组中选择所在的组,根据所在组的组播地址,采用组播的方式向同一组中所有节点发送第一节点加入信息;
    68.需要说明的是,可以在分布式系统的每个节点中预先保存成员列表,接收到第一节点加入信息的节点在自身保存的成员列表中增加第一节点的节点标识。
    69.进一步地,如图3所示,步骤s2、分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作之后还包括:
    70.步骤s6、任务执行节点将任务执行结果存储至任务执行日志中。
    71.具体地,任务执行节点将任务执行结果存储至任务执行日志中。将任务执行结果存储在任务执行日志而不是存储在数据库中,能够方便任务执行结果的查找。
    72.本发明实施例的分布式定时任务管理方法其应用于分布式系统,该分布式系统包
    括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列后,分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,再根据操作请求对定时任务执行相应的操作。其解决了现有的分布式定时任务方案中同一任务多节点无法运行和管理的问题,可以完成包括同一任务多节点、同一任务单节点运行的共同管理要求。
    73.图4是本技术实施例的分布式定时任务管理装置的功能模块示意图。如图4所示,该分布式定时任务管理装置2包括发送模块21、执行模块22。
    74.发送模块21,用于当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列;
    75.执行模块22,用于分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。
    76.可选地,执行模块22执行分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作还包括:
    77.当自身节点执行不可同时执行的定时任务请求时,判断当前节点ip是否为当前节点ip的任务,
    78.若是,则当前节点对列表数据进行分析,对当前节点ip为自身的任务进行续约操作,更新续约时间为当前时间;
    79.若否,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理。
    80.可选地,执行模块22执行判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理的操作还包括:
    81.该节点的续约时间与当前时间不满足续约条件时,则当前节点不执行续约操作。
    82.可选地,执行模块22执行将续约节点ip的任务修改为当前节点ip的任务,继续进行当前节点ip续约处理的操作具体包括:
    83.当redis有不可同时执行定时任务请求的操作请求时,会自动调用任务处理请求来处理发布的数据;
    84.任务处理请求首先将该操作请求添加到消息队列中,同时轮询该消息队列,消息队列中有数据时就取出消息队列中的数据进行发布,进行当前节点ip续约处理。
    85.可选地,执行模块22执行分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作具体包括:
    86.当可同时执行的定时任务第一节点加入分布式系统时,第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,第一节点加入信息包括第一节点的节点标识;
    87.可同时执行的定时任务第一节点所加入的最下层的组的公共节点接收到第一节点加入信息后,向公共节点所在的上一层的组中所有节点发送第一节点加入信息,以使得其它的公共节点将第一节点加入信息传递至分布式系统中的所有可同时执行的任务执行
    节点;
    88.可同时执行的任务执行节点接收任务处理请求,根据预设定时任务执行逻辑执行相应的任务执行操作,得到任务执行结果。
    89.可选地,执行模块22执行当第一节点所加入的最下层的组的公共节点向公共节点所在的上一层的组中所有节点发送第一节点加入信息的操作包括:
    90.第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址,采用组播的方式向公共节点所在的上一层的组中所有节点发送第一节点加入信息。
    91.可选地,执行模块22执行分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作之后还用于:
    92.任务执行节点将任务执行结果存储至任务执行日志中。
    93.关于上述实施例分布式定时任务管理装置中各模块实现技术方案的其他细节,可参见上述实施例中的分布式定时任务管理方法中的描述,此处不再赘述。
    94.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可
    95.请参阅图5,图5为本技术实施例的计算机设备的结构示意图。如图5所示,该计算机设备30包括处理器31及和处理器31耦接的存储器32。
    96.存储器32存储有程序指令,程序指令被处理器31执行时,使得处理器31执行上述实施例中的分布式定时任务管理方法的步骤。
    97.其中,处理器31还可以称为cpu(central processing unit,中央处理单元)。处理器31可能是一种集成电路芯片,具有信号的处理能力。处理器31还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
    98.参阅图6,图6为本技术实施例的存储介质的结构示意图。本技术实施例的存储介质存储有能够实现上述所有方法的程序指令41,其中,该程序指令41可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等计算机设备。服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content deliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
    99.在本技术所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以
    结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
    100.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

    技术特征:
    1.一种分布式定时任务管理方法,其特征在于,其应用于分布式系统,该分布式系统包括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,其包括:当分布式系统中任一节点接收到的定时任务的操作请求时,所述节点将所述操作请求发送至redis消息队列;分布式系统中所有节点接收所述redis消息队列发送的操作请求,并根据所述操作请求查询自身在运行所述定时任务时,根据所述操作请求对所述定时任务执行相应的操作。2.根据权利要求1所述的分布式定时任务管理方法,其特征在于,所述分布式系统中所有节点接收所述redis消息队列发送的操作请求,并根据所述操作请求查询自身在运行所述定时任务时,根据所述操作请求对所述定时任务执行相应的操作还包括:当所述自身节点执行不可同时执行的定时任务请求时,判断当前节点ip是否为所述当前节点ip的任务,若是,则所述当前节点对列表数据进行分析,对所述当前节点ip为自身的任务进行续约操作,更新续约时间为当前时间;若否,判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为所述当前节点ip的任务,继续进行所述当前节点ip续约处理。3.根据权利要求2所述的分布式定时任务管理方法,其特征在于,所述判断该节点的续约时间与当前时间是否满足续约条件,若满足,则将续约节点ip的任务修改为所述当前节点ip的任务,继续进行所述当前节点ip续约处理还包括:所述该节点的续约时间与当前时间不满足续约条件时,则所述当前节点不执行续约操作。4.根据权利要求2所述的分布式定时任务管理方法,其特征在于,所述将续约节点ip的任务修改为所述当前节点ip的任务,继续进行所述当前节点ip续约处理具体包括:当redis有所述不可同时执行定时任务请求的操作请求时,会自动调用任务处理请求来处理发布的数据;所述任务处理请求首先将该操作请求添加到消息队列中,同时轮询该消息队列,消息队列中有数据时就取出消息队列中的数据进行发布,进行所述当前节点ip续约处理。5.根据权利要求1所述的分布式定时任务管理方法,其特征在于,所述分布式系统中所有节点接收所述redis消息队列发送的操作请求,并根据所述操作请求查询自身在运行所述定时任务时,根据所述操作请求对所述定时任务执行相应的操作具体包括:当所述可同时执行的定时任务第一节点加入所述分布式系统时,所述第一节点向所加入的最下层的组中所有节点发送第一节点加入信息,所述第一节点加入信息包括所述第一节点的节点标识;所述可同时执行的定时任务第一节点所加入的最下层的组的公共节点接收到所述第一节点加入信息后,向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息,以使得其它的公共节点将所述第一节点加入信息传递至所述分布式系统中的所有所述可同时执行的任务执行节点;所述可同时执行的任务执行节点接收任务处理请求,根据预设定时任务执行逻辑执行相应的任务执行操作,得到任务执行结果。6.根据权利要求5所述的分布式定时任务管理方法,其特征在于,所述当所述第一节点
    所加入的最下层的组的公共节点向所述公共节点所在的上一层的组中所有节点发送所述第一节点加入信息包括:所述第一节点所加入的最下层的组的公共节点根据其所在的上一层的组的组播地址,采用组播的方式向所述公共节点所在的所述上一层的组中所有节点发送所述第一节点加入信息。7.根据权利要求1所述的分布式定时任务管理方法,其特征在于,所述分布式系统中所有节点接收所述redis消息队列发送的操作请求,并根据所述操作请求查询自身在运行所述定时任务时,根据所述操作请求对所述定时任务执行相应的操作之后还包括:任务执行节点将任务执行结果存储至任务执行日志中。8.一种分布式定时任务管理装置,其特征在于,其包括:发送模块,当分布式系统中任一节点接收到的定时任务的操作请求时,所述节点将所述操作请求发送至redis消息队列;执行模块,分布式系统中所有节点接收所述redis消息队列发送的操作请求,并根据所述操作请求查询自身在运行所述定时任务时,根据所述操作请求对所述定时任务执行相应的操作。9.一种计算机设备,其特征在于,所述计算机设备包括处理器、与所述处理器耦接的存储器,所述存储器中存储有程序指令,所述程序指令被所述处理器执行时,使得所述处理器执行如权利要求1-7中任一项权利要求所述的分布式定时任务管理方法的步骤。10.一种存储介质,其特征在于,存储有能够实现如权利要求1-7中任一项所述的分布式定时任务管理方法的程序指令。

    技术总结
    本申请提供了一种分布式定时任务管理方法、装置、设备及存储介质,其应用于分布式系统,该分布式系统包括多个节点和预先建立的redis消息队列,每个节点均向redis消息队列订阅消息,其中方法包括:当分布式系统中任一节点接收到的定时任务的操作请求时,节点将操作请求发送至redis消息队列;分布式系统中所有节点接收redis消息队列发送的操作请求,并根据操作请求查询自身在运行定时任务时,根据操作请求对定时任务执行相应的操作。其解决了现有的分布式定时任务方案中同一任务多节点无法运行和管理的问题,可以完成包括同一任务多节点、同一任务单节点运行的共同管理要求。同一任务单节点运行的共同管理要求。同一任务单节点运行的共同管理要求。


    技术研发人员:张灵
    受保护的技术使用者:深圳壹账通智能科技有限公司
    技术研发日:2022.02.17
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-10603.html

    最新回复(0)