[发明专利]应用系统多服务集群下定时任务调度方法有效
申请号: | 202211682914.1 | 申请日: | 2022-12-27 |
公开(公告)号: | CN115934287B | 公开(公告)日: | 2023-09-12 |
发明(设计)人: | 裴俊枫;王宗 | 申请(专利权)人: | 无锡锡银金科信息技术有限责任公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52;G06F16/2455;G06F16/23;G06F16/27 |
代理公司: | 无锡市汇诚永信专利代理事务所(普通合伙) 32260 | 代理人: | 朱晓林 |
地址: | 214000 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 系统 服务 集群 定时 任务 调度 方法 | ||
本申请公开一种应用系统多服务集群下定时任务调度方法,涉及集群服务器领域,接收指令创建任务,将任务对应数据存入数据库并同步到redis缓存中;查询redis缓存的任务列表,根据任务列表中各任务的状态信息更新可执行任务列表;基于redis分布式机制获取可执行任务列表对应的任务锁争抢列表,通过争抢锁机制和任务的前序条件完成情况确定目标任务;对目标任务创建子任务线程,并放到本地线程池中异步执行和同步redis缓存。本方案采用redis争抢锁机制来抢占任务,对关联性任务采用前序条件和后续条件核验机制来校验,确保高并发状态下任务不会重复触发,且采用线程池分配的方案避免了数据库io高占用和锁死的问题。
技术领域
本申请实施例涉及服务器领域,特别涉及一种应用系统多服务集群下定时任务调度方法。
背景技术
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。一旦在服务器上安装并运行了集群服务,该服务器即可加入群集。集群化操作可以减少单点故障数量,并且实现了群集化资源的高可用性。
当应用系统处于多服务集群部署状态下时,由于存在服务同一个定时任务会被重复触发,如果存在关联任务时相关联的任务也会被同时触发,这就可能会造成一个任务执行多遍。
针对重复触发和执行的情况,现有分布式任务调度主要有以下两种解决方案:
1.OpenSymphony开源组织的Quartz定时任务组件。该组件使用数据库锁的方式解决多服务情况下相同任务被同时唤醒的问题,但是无法实现连锁任务的级联触发。需要额外配置定时任务对前一任务查询或者自己在任务中手动触发下一任务。由于使用数据库锁在服务集群较大或任务较多的情况下会造成数据库io阻塞严重影响数据库性能。并且Quartz组件是java开发只能在java生态中使用。
2.xxljob任务调度系统。该系统是由个人开发者在Quartz开源组件的基础上进行二次开发,实现了关联任务自动触发功能。同样由于其基于Quartz核心逻辑还是数据库锁,同样会造成数据库io阻塞。并且由于其为java开发并且是个独立运行的平台,如果需要集成进现在系统会有一定的门槛。
发明内容
本申请提供一种应用系统多服务集群下定时任务调度方法,解决多服务集群部署状态下定时任务和关联任务重复触发的问题,所述方法包括:
接收指令创建任务,将任务对应数据存入数据库并同步到redis缓存中;
任务核心线程启动并完成数据同步后,查询所述redis缓存的任务列表,根据所述任务列表中各任务的状态信息更新所述可执行任务列表;其中,所述任务列表中包含有所有创建且未执行完毕的任务和对应状态信息,所述可执行任务列表中包含有所述任务核心线程确定的具备执行条件的任务;
基于redis分布式机制获取所述可执行任务列表对应的任务锁争抢列表,通过争抢锁机制和任务的前序条件完成情况确定目标任务;
对所述目标任务创建子任务线程,并放到本地线程池中异步执行和同步所述redis缓存。
具体的,所述redis缓存还包含有所述任务列表对应的争抢锁列表;所述争抢锁列表包括所有服务对任务的争抢状态;
所述状态信息至少包括每个任务的争抢锁id、任务id、任务参数、定时信息、执行类名、任务重试次数及最大重试次数、任务当前状态、前序任务列表和后续任务列表;所述前序任务列表和所述后续任务列表中包含有执行该任务需要的前序任务和后续任务;所述定时信息为触发该任务争抢机制的时间。
具体的,所述查询所述redis缓存的查询任务列表,根据所述任务列表中各任务的状态信息更新所述可执行任务列表,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡锡银金科信息技术有限责任公司,未经无锡锡银金科信息技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211682914.1/2.html,转载请声明来源钻瓜专利网。