【技术实现步骤摘要】
基于消息队列实现的分布式定时任务调度方法及电子设备
[0001]本专利技术涉及定时任务的调度方案,尤其是涉及一种基于消息队列实现的分布式定时任务调度方法及系统。
技术介绍
[0002]随着软件应用功能不断丰富,后台经常会遇到一些需要离线或定时处理的数据,例如,订单系统的超时状态判断、缓存数据的定时更新、定时给用户发邮件,甚至是一些定期计算的报表等,相应的定时任务处理功能不可避免的会成为很多系统的默认需求。
[0003]现有的定时调度方案很多,最常见的是通过操作系统设定定时任务,比如Linux传统的定时任务是基于Crontab实现的,Windows则是基于计划任务功能实现,在Java生态中,也诞生了Quartz定时任务框架。这些框架满足了目前大部分的调度需求,但相对的这些框架都只是在单机情况下运行良好,多机情况下表现不佳。一方面,调度器和调度客户端都有可能成为故障点,且调度器一旦宕机,整个调度系统将不再运行,另一方面,由于单体机器性能有限,一旦调度任务繁多,单台机器的执行性能也很大可能成为系统瓶颈。
专利技术内 ...
【技术保护点】
【技术特征摘要】
1.一种基于消息队列实现的分布式定时任务调度方法,其特征在于,包括以下步骤:设置调度控制台,所述调度控制台包括1个主调度器节点和至少1个备选调度器节点,所述备选调度器节点在所述主调度器节点出现故障时切换为主调度器节点;建立多个消息队列,每个消息队列具有唯一的标识符;主调度器节点接收创建定时任务指令,根据所述创建定时任务指令生成调度消息,为调度消息添加标识符,在调度消息达到执行时间条件后将所述调度消息放入其标识符对应的消息队列中;设置调度客户端,在调度客户端的操作类上添加标识符,所述调度客户端启动时不同的操作类绑定至其标识符所对应的消息队列上;调度客户端监听其所绑定的消息队列并执行消息队列中的调度消息。2.根据权利要求1所述的一种基于消息队列实现的分布式定时任务调度方法,其特征在于,所述调度控制台包括状态监测模块、节点选择模块和多个调度器节点,所述节点选择模块用于从多个调度器节点中选择主调度器节点,所述状态监测器用于监测主调度器节点的状态。3.根据权利要求2所述的一种基于消息队列实现的分布式定时任务调度方法,其特征在于,所述节点选择模块从多个调度器节点中选择主调度器节点为:多个调度器节点通过Zookeeper选举得到master节点,将master节点作为主调度器节点。4.根据权利要求1所述的一种基于消息队列实现的分布式定时任务调度方法,其特征在于,所述主调度器节点和各个备选调度器节点中分别搭载有不...
【专利技术属性】
技术研发人员:朱贤芳,顾永兴,易力,
申请(专利权)人:欧冶云商股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。