分布式任务调度的方法、系统及调度装置制造方法及图纸

技术编号:38939244 阅读:10 留言:0更新日期:2023-09-25 09:39
本申请公开了一种分布式任务调度的方法、系统及调度装置。该方法包括:按预设频率扫描数据库中的待触发任务列表;分别判断待触发任务列表中的每个目标任务是否为过期任务;在判定目标任务为过期任务的情况下,根据预设补偿策略确定目标任务的下次补偿触发时间;在判定目标任务不为过期任务的情况下,根据动态配置确定目标任务的下次触发时间。本申请通过动态配置定时任务,能灵活满足适配各种业务定时调度场景的需要,解决分布式任务调度系统强依赖cron表达式所带来的缺陷问题,并且通过引入任务过期补偿策略机制,有效解决过期任务的调度时效性问题,提高了任务关联执行的可靠性,保障了业务系统定时调度执行的稳定性与数据的完整性。完整性。完整性。

【技术实现步骤摘要】
分布式任务调度的方法、系统及调度装置


[0001]本申请涉及计算机
,具体地涉及一种分布式任务调度的方法、系统及调度装置。

技术介绍

[0002]随着互联网技术的发展,越来越多的企业和组织开始将大量的业务和数据存储在云平台上。这些业务往往需要定期执行一些任务,如数据清洗、数据分析、推荐算法、定时备份等。这些任务往往需要按照一定的时间表和规则进行调度和执行,以确保业务的正常运行。传统的任务调度方法主要是通过手动编写脚本或使用定时器进行定时任务调度。但是这种方式存在很多问题,比如易出错、不易维护、扩展性差等。为了解决这些问题,分布式任务调度系统逐渐成为了热门技术,并被企业广泛应用。通过在云平台上配置任务调度规则和参数,实现对任务的调度和执行,提高任务的执行效率,降低运维成本,是当前互联网企业和组织必备的关键技术之一。但是现有技术中对于年以上跨度的定时器,cron表达式无法支持,能支持的最大时间跨度上限为一年,并且定时器一旦启动便会一直运行下去,除非手动终止。同时,现有技术不支持非固定频率的定时器,过期任务会被直接跳过,分布式调度的稳定性与数据完整性较差。

技术实现思路

[0003]本申请实施例的目的是提供一种分布式任务调度的方法、系统及调度装置,用以解决现有技术中分布式调度的稳定性与数据完整性较差的问题。
[0004]为了实现上述目的,本申请第一方面提供一种分布式任务调度的方法,应用于调度装置,该调度装置与数据库通信,该方法包括:
[0005]按预设频率扫描数据库中的待触发任务列表;
[0006]分别判断待触发任务列表中的每个目标任务是否为过期任务;
[0007]在判定目标任务为过期任务的情况下,根据预设补偿策略确定目标任务的下次补偿触发时间;
[0008]在判定目标任务不为过期任务的情况下,根据动态配置确定目标任务的下次触发时间。
[0009]在本申请实施例中,按预设频率扫描数据库中的待触发任务列表包括:
[0010]启动任务扫描线程;
[0011]将数据库中的待触发任务列表推入时间轮中;
[0012]按照预设频率轮询时间轮,遍历当前存储桶和前一个存储桶的任务集合。
[0013]在本申请实施例中,分别判断待触发任务列表中的每个目标任务是否为过期任务包括:
[0014]判断当前时间是否大于目标任务的触发时间与预读时间之和;
[0015]在当前时间大于目标任务的触发时间与预读时间之和的情况下,判定目标任务为
过期任务;
[0016]在当前时间小于或等于目标任务的触发时间与预读时间之和的情况下,判定目标任务不为过期任务。
[0017]在本申请实施例中,预设补偿策略为递进补偿策略,根据预设补偿策略确定目标任务的下次补偿触发时间包括:
[0018]获取预设递进补偿时间列表;
[0019]根据目标任务的补偿次数获取与补偿次数对应的补偿时间;
[0020]将补偿时间与当前时间相加以得到目标任务的下次补偿触发时间。
[0021]在本申请实施例中,预设补偿策略为固定跨度补偿策略,根据预设补偿策略确定目标任务的下次补偿触发时间包括:
[0022]获取预设时间跨度;
[0023]将目标任务的补偿次数与预设时间跨度相乘,以得到与补偿次数对应的补偿时间;
[0024]将补偿时间与当前时间相加以得到目标任务的下次补偿触发时间。
[0025]在本申请实施例中,调度装置还与执行器通信,该方法还包括:
[0026]在判定目标任务不为过期任务的情况下,按预设路由策略查询执行器地址;
[0027]根据执行器地址向执行器发送目标任务的调度请求;
[0028]获取执行器发送的执行结果;
[0029]将执行结果发送至数据库。
[0030]在本申请实施例中,根据动态配置确定目标任务的下次触发时间包括:
[0031]获取执行器发送的预设配置规则;
[0032]根据预设配置规则确定目标任务的下次触发时间。
[0033]本申请第二方面提供一种调度装置,包括:
[0034]存储器,被配置成存储指令;以及
[0035]处理器,被配置成从存储器调用指令以及在执行指令时能够实现上述的分布式任务调度的方法。
[0036]本申请第三方面提供一种分布式任务调度的系统,包括:
[0037]上述的调度装置;
[0038]数据库,与调度装置通信,被配置成存储调度装置发送的数据;
[0039]执行器,与调度装置通信,被配置成执行调度装置的指令,以及向调度装置发送预设配置规则和执行结果。
[0040]本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行上述的分布式任务调度的方法。
[0041]本申请在扫描数据库的待触发任务列表中的每个目标任务时,判断是否为过期任务,在判定目标任务为过期任务的情况下,根据预设补偿策略确定目标任务的下次补偿触发时间,在判定目标任务不为过期任务的情况下,根据动态配置确定目标任务的下次触发时间。通过动态配置定时任务,能灵活满足适配各种业务定时调度场景的需要,解决分布式任务调度系统强依赖cron表达式所带来的缺陷问题,并且通过引入任务过期补偿策略机制,有效解决过期任务的调度时效性问题,提高了任务关联执行的可靠性,保障了业务系统
定时调度执行的稳定性与数据的完整性。
[0042]本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0043]附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
[0044]图1示意性示出了根据本申请实施例的一种分布式任务调度的方法的流程示意图;
[0045]图2示意性示出了根据本申请实施例的一种调度装置的结构框图;
[0046]图3示意性示出了根据本申请实施例的一种分布式任务调度的系统的结构图;
[0047]图4示意性示出了根据本申请一具体实施例的一种分布式任务调度的方法的流程图。
[0048]附图标记说明
[0049]210
ꢀꢀꢀꢀꢀꢀ
存储器
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
220
ꢀꢀꢀꢀꢀꢀ
处理器
[0050]310
ꢀꢀꢀꢀꢀꢀ
调度装置
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
320
ꢀꢀꢀꢀꢀꢀ
数据库
[0051]330执行器
具体实施方式
[0052]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式任务调度的方法,其特征在于,应用于调度装置,所述调度装置与数据库通信,所述方法包括:按预设频率扫描所述数据库中的待触发任务列表;分别判断所述待触发任务列表中的每个目标任务是否为过期任务;在判定所述目标任务为过期任务的情况下,根据预设补偿策略确定所述目标任务的下次补偿触发时间;在判定所述目标任务不为过期任务的情况下,根据动态配置确定所述目标任务的下次触发时间。2.根据权利要求1所述的方法,其特征在于,所述按预设频率扫描所述数据库中的待触发任务列表包括:启动任务扫描线程;将所述数据库中的待触发任务列表推入时间轮中;按照所述预设频率轮询所述时间轮,遍历当前存储桶和前一个存储桶的任务集合。3.根据权利要求1所述的方法,其特征在于,所述分别判断所述待触发任务列表中的每个目标任务是否为过期任务包括:判断当前时间是否大于所述目标任务的触发时间与预读时间之和;在所述当前时间大于所述目标任务的触发时间与预读时间之和的情况下,判定所述目标任务为过期任务;在所述当前时间小于或等于所述目标任务的触发时间与预读时间之和的情况下,判定所述目标任务不为过期任务。4.根据权利要求1所述的方法,其特征在于,所述预设补偿策略为递进补偿策略,所述根据预设补偿策略确定所述目标任务的下次补偿触发时间包括:获取预设递进补偿时间列表;根据所述目标任务的补偿次数获取与所述补偿次数对应的补偿时间;将所述补偿时间与当前时间相加以得到所述目标任务的下次补偿触发时间。5.根据权利要求1所述的方法,其特征在于,所述预设补偿策略为固定...

【专利技术属性】
技术研发人员:唐欢陈铁军卿兰子玉杨卉屿王昱琪
申请(专利权)人:中科云谷科技有限公司
类型:发明
国别省市:

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

1