一种基于Redis的分布式集群下的定时任务管理方法及装置制造方法及图纸

技术编号:23212536 阅读:20 留言:0更新日期:2020-01-31 21:47
本发明专利技术提供一种基于Redis的分布式集群下的定时任务管理方法及装置,应用于定时任务处理技术领域,所述方法包括:至少一个应用程序发送定时任务;任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理,并在所述任务监听程序的定时器触发时,将该定时任务写入redis任务执行队列;应用程序监听redis任务执行队列,并根据队列的抢占特性,读取并消费所述redis任务执行队列中的定时任务。应用本发明专利技术实施例,旨在通过任务监听程序读取所有的定时任务信息并分别启动定时器,在定时任务触发时将定时任务放入redis任务执行队列等待被消费,集群中的应用程序都会监听此redis任务执行队列,消费到任务就会去执行此任务。

A timing task management method and device based on redis distributed cluster

【技术实现步骤摘要】
一种基于Redis的分布式集群下的定时任务管理方法及装置
本专利技术涉及定时任务处理
,特别是涉及一种基于Redis的分布式集群下的定时任务管理方法及装置。
技术介绍
定时任务系统一种按照指定的周期策略,定时或周期性执行任务的业务系统。传统的定是任务是通过配置约定,应用程序启动时会读取配置,根据配置里的定时任务信息启动定时器,配置里定时任务变更后,需要重启应用程序重新读取定时任务信息。随着业务量的增长,程序通常会实行集群的方式部署,也会有大量的定时任务需要运行,对于任何定时任务的变更,需要修改各个集群中里配置中的定时任务信息,整个集群里的应用程序都需要重新启动,并且每个应用程序都会读取定时任务,会有任务会重复执行的缺点。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种基于Redis的分布式集群下的定时任务管理方法及装置,旨在通过任务监听程序读取所有的定时任务信息并分别启动定时器,在定时任务触发时将定时任务放入redis任务执行队列等待被消费,集群中的应用程序都会监听此redis任务执行队列,消费到任务就会去执行此任务。为实现上述目的及其他相关目的,本专利技术提供一种基于Redis的分布式集群下的定时任务管理方法,所述方法包括:至少一个应用程序发送定时任务;任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理,并在所述任务监听程序的定时器触发时,将该定时任务写入redis任务执行队列;应用程序监听redis任务执行队列,并根据队列的抢占特性,读取并消费所述redis任务执行队列中的定时任务。一种实现方式中,所述至少一个应用程序发送定时任务的步骤,包括:每一个应用程序在确定定时任务是创建定时任务时,将定时任务发送至redis新增任务队列;每一个应用程序在确定定时任务是创删除定时任务时,将定时任务发送至redis删除任务队列;每一个应用程序在确定定时任务是创删修改时任务时,将定时任务发送至redis修改任务队列。一种实现方式中,所述任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理的步骤,包括:任务监听程序获取定时任务信息;在确定定时任务是创建定时任务时,为该需创建的定时任务设置定时器;或者;在确定定时任务是删除定时任务时,删除与该定时任务所对应的定时器;或者;在确定定时任务是修改定时任务时,与该定时任务所对应的定时器,并根据当前修改后到定时任务信息创建动新的定时器。一种实现方式中,所述至少一个应用程序发送定时任务的步骤,包括:至少一个应用程序发送定时任务至数据库;并通过应用程序都对数据库中的定时任务信息进行添加,修改,删除操作。一种实现方式中,所述方法还包括:任务监听程序在启动后从所述数据库中读取定时任务信息;所述任务监听程序在启动后直接接收至少一个应用程序发送定时任务。一种实现方式中,所述任务监听程序包括:主任务监听程序、备任务监听程序;主任务监听程序启动,且备任务监听程序不启动;部署keepAlive,设置连接频率,并将主任务监听程序的节点信息和备任务监听程序节点信息均配置在keepAlive中;keepAlive启动,根据预设时间间隔发数据至主任务监听程序,如果数据可达,则表示主任务监听程序是存活的状态;如果数据不可达,继续发送且超时后,撤销连接,确定主任务监听程序不可用;启动备用节点中的任务监听程序,并根据定时任务的类型进行定时任务与定时器的处理。此外,本专利技术还公开了一种基于Redis的分布式集群下的定时任务管理装置,所述装置包括:至少一个应用程序,用于发送定时任务;任务监听程序,用于获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理,并在所述任务监听程序的定时器触发时,将该定时任务写入redis任务执行队列;以使应用程序通过监听redis任务执行队列,并根据队列的抢占特性,读取并消费所述redis任务执行队列中的定时任务。如上所述,本专利技术实施例提供的一种基于Redis的分布式集群下的定时任务管理方法及装置,本专利技术启动一个任务监听程序读取所有的定时任务信息并分别启动定时器,在定时任务触发时将定时任务放入redis任务执行队列等待被消费,集群中的应用程序都会监听此redis任务执行队列,消费到任务就会去执行此任务;以及,通过将定时任务信息全部记录在数据库,本专利技术的集群中的应用程序都可以对数据库中的定时任务信息进行添加,修改,删除操作;此外,在集群中的每个应用程序对任务做了任何变更后,都需要把变更信息放入redis变更任务队列,由定时任务程序监听此redis变更任务队列,并根据变更信息重新启动定时器。因此,本专利技术实施例通过直接在任务监听程序进行定时器的建立、删除或者修改的方式进行变更定时任务,不需要应用程序进行重启,因此实现应用程序不用重启的方法,减少了生产环境应用程序重启的次数,降低维护的成本,节约人力与时间;此外,通过每一个应用程序之间的队列的抢占特性提供了应用程序竞争任务的能力,保证任务不重复执行,通过设置任务监听程序的主备方案增加了系统的高可用性。附图说明图1是本专利技术实施例的一种基于Redis的分布式集群下的定时任务管理方法的一种流程示意图。图2是本专利技术实施例的一种基于Redis的分布式集群下的定时任务管理方法的第一种具体应用示意图。图3是本专利技术实施例的一种基于Redis的分布式集群下的定时任务管理方法的第二种具体应用示意图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。请参阅图1-3。需要说明的是,本实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。如图1所示,本专利技术实施例提供一种基于Redis的分布式集群下的定时任务管理方法,所述方法包括:S101,至少一个应用程序发送定时任务。可以理解的是,用户在需要进行任务处理时,通过对应用程序的操作,实现任务的定制,例如,通过应用程序进行定时任务的创建,或者定时任务的修改,以及在任务不再需要执行时,需要进进行定时任务的删除。因此,定时任务的类型可以是这对定时任务的创建、修改和删除,因此,应用程序发送的任务可以是三者中的任何一种或者是三者中的任意组合,但是针对一种任务,其类型只能是其中的一种,例如是任务的创建。可以理解的是,集群下的应用程序本文档来自技高网...

【技术保护点】
1.一种基于Redis的分布式集群下的定时任务管理方法,其特征在于,所述方法包括:/n至少一个应用程序发送定时任务;/n任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理,并在所述任务监听程序的定时器触发时,将该定时任务写入redis任务执行队列;/n应用程序监听redis任务执行队列,并根据队列的抢占特性,读取并消费所述redis任务执行队列中的定时任务。/n

【技术特征摘要】
1.一种基于Redis的分布式集群下的定时任务管理方法,其特征在于,所述方法包括:
至少一个应用程序发送定时任务;
任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理,并在所述任务监听程序的定时器触发时,将该定时任务写入redis任务执行队列;
应用程序监听redis任务执行队列,并根据队列的抢占特性,读取并消费所述redis任务执行队列中的定时任务。


2.根据权利要求1所述的基于Redis的分布式集群下的定时任务管理方法,其特征在于,所述至少一个应用程序发送定时任务的步骤,包括:
每一个应用程序在确定定时任务是创建定时任务时,将定时任务发送至redis新增任务队列;
每一个应用程序在确定定时任务是创删除定时任务时,将定时任务发送至redis删除任务队列;
每一个应用程序在确定定时任务是创删修改时任务时,将定时任务发送至redis修改任务队列。


3.根据权利要求2所述的基于Redis的分布式集群下的定时任务管理方法,其特征在于,所述任务监听程序获取定时任务信息,并根据定时任务的类型进行定时任务与定时器的处理的步骤,包括:
任务监听程序获取定时任务信息;
在确定定时任务是创建定时任务时,为该需创建的定时任务设置定时器;
或者;
在确定定时任务是删除定时任务时,删除与该定时任务所对应的定时器;
或者;
在确定定时任务是修改定时任务时,与该定时任务所对应的定时器,并根据当前修改后到定时任务信息创建动新的定时器。


4.根据权利要求1所述的基于Redis的分布式集群下的定时任务管理方法,其特征在于,所述至少...

【专利技术属性】
技术研发人员:耿洪杰王颖康谢屈强张雷
申请(专利权)人:上海思询信息科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1