应用系统多服务集群下定时任务调度方法技术方案

技术编号:37221850 阅读:27 留言:0更新日期:2023-04-20 23:07
本申请公开一种应用系统多服务集群下定时任务调度方法,涉及集群服务器领域,接收指令创建任务,将任务对应数据存入数据库并同步到redis缓存中;查询redis缓存的任务列表,根据任务列表中各任务的状态信息更新可执行任务列表;基于redis分布式机制获取可执行任务列表对应的任务锁争抢列表,通过争抢锁机制和任务的前序条件完成情况确定目标任务;对目标任务创建子任务线程,并放到本地线程池中异步执行和同步redis缓存。本方案采用redis争抢锁机制来抢占任务,对关联性任务采用前序条件和后续条件核验机制来校验,确保高并发状态下任务不会重复触发,且采用线程池分配的方案避免了数据库io高占用和锁死的问题。了数据库io高占用和锁死的问题。了数据库io高占用和锁死的问题。

【技术实现步骤摘要】
应用系统多服务集群下定时任务调度方法


[0001]本申请实施例涉及服务器领域,特别涉及一种应用系统多服务集群下定时任务调度方法。

技术介绍

[0002]服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。一旦在服务器上安装并运行了集群服务,该服务器即可加入群集。集群化操作可以减少单点故障数量,并且实现了群集化资源的高可用性。
[0003]当应用系统处于多服务集群部署状态下时,由于存在服务同一个定时任务会被重复触发,如果存在关联任务时相关联的任务也会被同时触发,这就可能会造成一个任务执行多遍。
[0004]针对重复触发和执行的情况,现有分布式任务调度主要有以下两种解决方案:
[0005]1.OpenSymphony开源组织的Quartz定时任务组件。该组件使用数据库锁的方式解决多服务情况下相同任务被同时唤醒的问题,但是无法实现连锁任务的级联触发。需要额外配本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种应用系统多服务集群下定时任务调度方法,其特征在于,所述方法包括:接收指令创建任务,将任务对应数据存入数据库并同步到redis缓存中;任务核心线程启动并完成数据同步后,查询所述redis缓存的任务列表,根据所述任务列表中各任务的状态信息更新所述可执行任务列表;其中,所述任务列表中包含有所有创建且未执行完毕的任务和对应状态信息,所述可执行任务列表中包含有所述任务核心线程确定的具备执行条件的任务;基于redis分布式机制获取所述可执行任务列表对应的任务锁争抢列表,通过争抢锁机制和任务的前序条件完成情况确定目标任务;对所述目标任务创建子任务线程,并放到本地线程池中异步执行和同步所述redis缓存。2.根据权利要求1所述的方法,其特征在于,所述redis缓存还包含有所述任务列表对应的争抢锁列表;所述争抢锁列表包括所有服务对任务的争抢状态;所述状态信息至少包括每个任务的争抢锁id、任务id、任务参数、定时信息、执行类名、任务重试次数及最大重试次数、任务当前状态、前序任务列表和后续任务列表;所述前序任务列表和所述后续任务列表中包含有执行该任务需要的前序任务和后续任务;所述定时信息为触发该任务争抢机制的时间。3.根据权利要求2所述的,其特征在于,所述查询所述redis缓存的查询任务列表,根据所述任务列表中各任务的状态信息更新所述可执行任务列表,包括:轮询所述任务列表,根据所述定时信息确定新触发任务,根据任务当前状态、争抢锁id及争抢状态、任务重试次数及最大重试次数确定可执行任务;基于所述可执行任务和所述新触发任务更新所述可执行任务列表;其中,可执行任务为历史执行失败的任务,且执行次数小于最大重试次数。4.根据权利要求3所述的方法,其特征在于,集群服务器包含若干服务,所述可执行任务列表中的任务对应争抢锁为未占用状态,任务当前状态...

【专利技术属性】
技术研发人员:裴俊枫王宗
申请(专利权)人:无锡锡银金科信息技术有限责任公司
类型:发明
国别省市:

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

1