[发明专利]一种定时任务的调度方法、调度系统及电子设备在审
申请号: | 202111127931.4 | 申请日: | 2021-09-26 |
公开(公告)号: | CN114064228A | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 李永银 | 申请(专利权)人: | 苏州宏软信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F16/2455;G06F16/25 |
代理公司: | 苏州华博知识产权代理有限公司 32232 | 代理人: | 黄丽莉 |
地址: | 215000 江苏省苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定时 任务 调度 方法 系统 电子设备 | ||
本发明涉及了一种定时任务的调度方法、调度系统及电子设备,调度方法包括:步骤A:当达到定时任务的执行时间节点时,获取缓存中的时间记录信息;步骤B:根据时间记录信息判断定时任务是否已被其他微服务实例执行;步骤C:若未被执行,获取触发器信息;步骤D:获取锁定信息,判断定时任务是否被锁定;步骤E:若未被锁定,则获取任务类型;步骤F:判断任务类型;若执行定时任务不需要调用第三方服务,则在本地执行定时任务;若需要调用,则查询本地缓存中是否存在第三方服务;先调用第三方服务、再执行定时任务。通过上述设置,可解决目前有状态微服务架构中只有主身份的微服务实例执行定时任务而导致性能瓶颈、系统后续扩容能力低的问题。
技术领域
本发明涉及调度定时任务技术领域,具体涉及一种定时任务的调度方法、调度系统及电子设备。
背景技术
随着计算机技术的发展,越来越多的技术应用在制造软件领域,传统制造业正在逐步向制造科技转变,但由于制造行业的安全性、实时性要求,也对技术提出了更高的要求。
目前,定时任务的调度基于开源项目Quartz实现,Quartz是OpenSymphony开源组织在Jobscheduling领域一个开源项目,完全由Java开发,可以用来执行定时任务,类似java.util.Timer。
Quartz主要的功能有持久性作业,就是保持调度定时的状态,支持失效转移等;作业管理,对调度作业进行有效的管理。然而微服务环境下,为了应用的不间断服务,应用一般是多实例运行的。但是,通常情况下,定时任务最好只在多实例中的其中一个实例上执行。
其中,实例即微服务实例,就是在微服务框架下应用的多个副本,每个应用副本以容器方式运行,每个副本是一个微服务实例。
目前的有状态的微服务架构中,一般是主身份的微服务实例一直执行定时任务,由此,易导致定时任务执行时的性能瓶颈,且不便于后续系统的扩容。
发明内容
为解决上述技术问题,本发明的目的在于提供一种定时任务的调度方法、调度系统及电子设备,所述调度方法用来解决目前有状态微服务架构中只有主身份的微服务实例执行定时任务而易导致性能瓶颈、系统后续扩容能力低的问题。
为了实现上述发明目的之一,本发明一实施方式提供一种定时任务的调度方法,基于无状态微服务框架,所述无状态微服务框架包括两个以上微服务实例;所述调度方法包括:
步骤A:当达到定时任务的执行时间节点时,获取缓存中的时间记录信息,所述时间记录信息为所述定时任务之前的执行时间信息;
步骤B:根据所述时间记录信息判断所述定时任务是否已被其他微服务实例执行;
步骤C:若所述定时任务未被执行,获取所述定时任务的触发器信息;
步骤D:获取所述定时任务的锁定信息,并判断所述定时任务是否被锁定;
步骤E:若所述定时任务未被锁定,则获取所述定时任务的任务类型;
步骤F:判断所述定时任务的任务类型;
若执行所述定时任务不需要调用第三方服务,则在本地直接执行所述定时任务;
若执行所述定时任务需要调用第三方服务,则查询本地缓存中是否存在所述第三方服务;若存在,则先从所述本地缓存中调用所述第三方服务、再执行所述定时任务。
作为本发明一实施方式的进一步改进,在步骤F之后,所述调度方法还包括步骤G:
若所述本地缓存中不存在所述第三方服务,则在注册中心查询所述第三方服务的服务信息、并将所述服务信息写入所述本地缓存;
从所述本地缓存中调用所述第三方服务后,执行所述定时任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州宏软信息技术有限公司,未经苏州宏软信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111127931.4/2.html,转载请声明来源钻瓜专利网。