[发明专利]一种定时任务的调度方法及装置在审
申请号: | 202110119609.0 | 申请日: | 2021-01-28 |
公开(公告)号: | CN112817717A | 公开(公告)日: | 2021-05-18 |
发明(设计)人: | 王汉 | 申请(专利权)人: | 新华三大数据技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 450000 河南省郑州市郑州高*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定时 任务 调度 方法 装置 | ||
本说明书提供一种定时任务的调度方法及装置,在该定时任务的调度方法中,可以支持多个不同的微服务实例之间的定时任务,通过获取缓存中记录的时间信息,从而通过该事件信息获取到之前是否有其他的微服务实例执行过该定时任务,通过类似于“抢占”的方式执行定时任务。采用无状态的微服务系统架构多个微服务实例之间相互配合,多个微服务实例均可以执行定时任务,降低了定时任务执行时的性能瓶颈,并且采用无状态的微服务系统便于后续系统的扩容。
技术领域
本说明书涉及通信技术领域,尤其涉及一种定时任务的调度方法及装置。
背景技术
在产品运行过程中,我们常会有定时任务的需求,常见如定时备份、定时监控等。定时任务一般有两种:
一种方式是,在固定的时间点,如每天的12:00执行;
还有一种方式是,以固定的频率执行,如每间隔1个小时执行。
在集中式单系统上,定时任务的控制比较简单,各种编程语言都有比较成熟的接口可以实现,都是在单一进程和系统中完成固定时间点或者固定频率的任务。但是微服务环境下,定时任务和集中式环境相比有如下几个难点:
微服务环境下,为了应用的不间断服务,应用一般是多实例运行的。定时任务通常我们也只会希望在多实例中的其中一个实例上执行,在保证只有一个实例上执行的前提下,当微服务实例发生故障,我们会希望另一个微服务实例能够接过故障微服务实例,继续执行定时任务。
在微服务实例超过三个的时候,当承载定时任务的微服务实例故障,需要一个算法从剩余存活的多个微服务实例中选择一个来接替故障微服务实例承载定时任务。
相关技术中,在采用有状态微服务下,如果给微服务创建主备集群,依靠集群的主备关系来实现定时任务的管理。这里的有状态指的是集群中微服务实例存在身份状态,即要么是Master(主身份),要么Slave(备身份)。图1示出了一种三个实例的微服务架构下,定时任务执行的示意图,当master身份的微服务故障后,集群会发生主备倒换,新的Master身份的微服务实例会接管定时任务的执行权,但是该方案最大的缺陷是只能给有状态的主备集群微服务使用,对于无状态、多主集群等场景不适用。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种定时任务的调度方法及装置。
根据本说明书实施例的第一方面,提供一种定时任务的调度方法,所述方法包括:
所述微服务实例在到达定时任务的执行时间时,获取缓存单元中记录的时间信息,所述时间信息为执行定时任务的微服务实例记录的;
根据获取到的时间信息与所述微服务实例本次待执行的定时任务对应的执行时间确定所述本次待执行的定时任务是否有其他微服务实例执行过;
如果所述微服务实例确定不存在其他微服务实例执行过所述本次待执行的定时任务,则向所述缓存单元中写入本次待执行的定时任务对应的执行时间,并由所述微服务实例执行本次待执行的定时任务。
可选的,如果所述微服务实例确定存在其他微服务实例执行过所述本次待执行的定时任务,则不执行本次待执行的定时任务。
可选的,在所述定时任务为固定时间执行的定时任务的情况下,
所述根据获取到的时间信息与所述微服务实例本次待执行的定时任务对应的执行时间确定所述本次待执行的定时任务是否有其他微服务实例执行过,包括:
所述微服务实例读取本次待执行的定时任务对应的执行时间;判断所述执行时间是否超过缓存单元中记录的时间信息,如果执行时间超过缓存单元中记录的时间信息,则确定本次待执行的定时任务没有其他微服务实例执行过。
可选的,在所述定时任务为固定频率执行定时任务的情况下,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三大数据技术有限公司,未经新华三大数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110119609.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种偶氮化合物及其合成方法和应用
- 下一篇:一种增强云计算环境节能方法