[发明专利]基于消息队列的定时任务管理系统及分配方法有效
| 申请号: | 201910830502.X | 申请日: | 2019-09-04 |
| 公开(公告)号: | CN110532114B | 公开(公告)日: | 2022-06-14 |
| 发明(设计)人: | 王大帅;邵士雨;于昊;高传集 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
| 地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 消息 队列 定时 任务 管理 系统 分配 方法 | ||
本发明公开了一种基于消息队列的定时任务管理系统及分配方法,属于定时任务分配领域,要解决的技术问题为如何基于消息队列实现定时任务的管理和分配,系统包括执行器、消息队列、节点和数据库。分配方法包括:通过节点定时访问节点表,判断节点表中每个节点为死亡节点还是存活节点,标记每个死亡节点,并统计所有存活节点的数量;将与死亡节点相应的定时任务进行标记抹除,所述与死亡节点相应的定时任务变为无主定时任务;基于定时任务的数量以及存活节点的数量,为存活节点重新分配定时任务,重新分配定时任务时,每个存活节点对应的应分配定时任务数量为:应分配定时任务数量=所有定时任务的数量/所有存活节点的数量。
技术领域
本发明涉及定时任务分配领域,具体地说是一种基于消息队列的定时任务管理系统及分配方法。
背景技术
定时任务是很多互联网项目中必不可少的东西,传统的定时任务管理是通过在程序内部起线程实现的,这种管理方式比较耗费资源,且扩展业务时比较繁琐,而且其并非原生支持分布式,要通过比较复杂的设计才能勉强用于分布式系统中。
现在业界开源的定时任务管理平台,采用了复杂的设计来保证其可扩展性、异步性、削峰能力、幂等性等,而这些特性完全可以通过消息队列来加以实现。消息队列已经是业界成熟的技术,有众多的开源技术可以使用,且其性能稳定,可用性与可扩展性非常强,现在的互联网项目基本上都会有一个或多个消息队列系统,因此通过复用这些消息队列,实现定时任务平台,既减少了复杂度,增加了稳定性,又可以满足业务需求。
基于上述分析,如何基于消息队列实现定时任务的管理和分配,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供一种基于消息队列的定时任务管理系统及分配方法,来解决如何基于消息队列实现定时任务的管理和分配的问题。
第一方面,本发明提供一种基于消息队列的定时任务管理系统,包括:
执行器,所述执行器为创建于对应程序内的进程,用于注册、修改、删除以及执行定时任务;
消息队列,所述消息队列共多个,每个消息队列对应于一种执行器,用于将定时任务传送至对应的执行器;
节点,所述节点为一个组件,用于将定时任务分配至消息队列;
数据库,所述数据库内创建有任务表和节点表,任务表用于存储定时任务信息,节点表用于存储节点信息。
更优的,还包括前端展示界面,用于从数据库获取定时任务信息和节点信息,并展示和监控定时任务信息和节点信息,并用于向数据库插入定时任务。
作为优选,定时任务信息包括但不限于名称、执行周期、执行器组标识、任务内容;
所述定时任务信息持久化存储于数据库的任务信息表中。
作为优选,节点信息包括节点ID和节点时间戳,所述节点时间戳用于标识节点访问数据库的时间。
第二方面,本发明提供一种基于消息队列的定时任务分配方法,应用于如第一方面任一项所述的基于消息队列的定时任务系统,所述分配方法包括:
通过节点定时访问节点表,判断节点表中每个节点为死亡节点还是存活节点,标记每个死亡节点,并统计所有存活节点的数量;
将与死亡节点相应的定时任务进行标记抹除,所述与死亡节点相应的定时任务变为无主定时任务;
基于定时任务的数量以及存活节点的数量,为存活节点重新分配定时任务,重新分配定时任务时,每个存活节点对应的应分配定时任务数量为:
应分配定时任务数量=所有定时任务的数量/所有存活节点的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910830502.X/2.html,转载请声明来源钻瓜专利网。





