一种任务调度方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31318767 阅读:21 留言:0更新日期:2021-12-13 00:00
本公开提供了一种任务调度方法、装置、电子设备及存储介质,该方法包括:在确定需要执行目标任务的情况下,控制调度器集群中的多个调度器分别向协调器集群获取分布式锁;读取获取到分布式锁的第一调度器中的关联信息,并根据目标任务以及关联信息,从执行器集群中确定目标执行器;控制第一调度器调度目标执行器,执行目标任务。本公开实施例,由于采用协调器集群代替了现有技术中的数据库,也即,将锁数据缓存在协调器集群的内存中,相比数据库锁更加稳定,通过向协调器集群获取分布式锁,避免了在高并发环境下容易出现死锁的情况;此外,由于执行器集群的关联信息存储在调度器的内存中,相较于关联信息存储于数据库中,可以提升调度效率。升调度效率。升调度效率。

【技术实现步骤摘要】
一种任务调度方法、装置、电子设备及存储介质


[0001]本公开涉及任务调度
,具体而言,涉及一种任务调度方法、装置、电子设备及存储介质。

技术介绍

[0002]随着互联网技术的发展,无论是互联网应用还是企业级应用,很多业务场景需要在某个特定时刻去做某件任务,比如每天16点统计当天的销售数据,因此需要任务调度系统来解决问题。
[0003]目前,通常基于集群式的任务调度架构去执行相应的任务,也即通过多台调度器调度目标执行器去执行目标任务。为了避免多台调度器在触发调度任务的过程中发生冲突的情况,可以通过抢占分布式锁的方式,由抢占成功的调度器负责任务的调度权。比如XXL

JOB任务调度平台,通过数据库(DB,Database)锁来实现多个调度器抢占分布式锁的过程,且任务信息存储于数据库中。然而,当任务种类和数据较多,执行器也较多的情况下,调度的并发量会增多,导致调度器在获取数据库锁时容易出现死锁的情况,进而影响整个调度平台的调度工作。

技术实现思路

[0004]本公开实施例至少提供一种任务调度方法、装置、电子设备及计算机可读存储介质。
[0005]第一方面,本公开实施例提供了一种任务调度方法,包括:
[0006]在确定需要执行目标任务的情况下,控制调度器集群中的多个调度器分别向协调器集群获取分布式锁;所述调度器中存储有执行器集群的关联信息;所述关联信息包括所述执行器集群中的多个执行器身份信息及每个执行器需要执行的任务信息;
[0007]读取获取到所述分布式锁的第一调度器中的所述关联信息,并根据所述目标任务以及所述关联信息,从所述执行器集群中确定目标执行器;
[0008]控制所述第一调度器调度所述目标执行器,执行所述目标任务。
[0009]本公开实施例中,由于采用协调器集群代替了现有技术中的数据库,也即,将锁数据缓存在协调器集群的内存中,相比数据库锁更加稳定,通过向协调器集群获取分布式锁,避免了在高并发环境下容易出现死锁的情况;此外,由于执行器集群的关联信息存储在调度器的内存中,相较于关联信息存储于数据库中,可以提升调度效率。
[0010]根据第一方面,在一种可能的实施方式中,所述执行器的身份信息包括所述执行器的网际协议地址IP和/或所述执行器的名称;所述任务信息包括任务的执行内容、任务的执行时间以及任务身份标识号ID中的至少一种。
[0011]根据第一方面,在一种可能的实施方式中,所述根据所述目标任务以及所述关联信息,从所述执行器集群中确定目标执行器,包括:
[0012]根据所述目标任务以及所述关联信息,从所述执行器集群中确定多个关联执行
器;
[0013]根据预设的调度规则,从所述多个关联执行器中确定所述目标执行器。
[0014]本公开实施例中,通过根据预设的调度规则,从多个执行器中确定目标执行器,可以避免多个执行器在执行目标任务时产生冲突,进而提高调度效率。
[0015]根据第一方面,在一种可能的实施方式中,所述确定需要执行目标任务,包括:
[0016]基于预设的任务调度信息,确定是否需要执行所述目标任务;所述任务调度信息包括预设的时间节点、预设的时间间隔或者预设的任务调度次数。
[0017]根据第一方面,在一种可能的实施方式中,在所述确定需要执行目标任务之前,所述方法还包括:
[0018]将所述关联信息存储到所述调度器集群中的第二调度器;
[0019]控制所述第二调度器将所述关联信息发送至所述协调器集群;
[0020]通过所述协调器集群,将所述关联信息发送至所述调度器集群中除所述第二调度器之外的其他调度器进行存储。
[0021]本公开实施例中,通过协调器集群将关联信息存储到调度器集群的所有调度器的内存中,替代了现有算法中将关联信息存储在数据库中,提升了调度效率。
[0022]根据第一方面,在一种可能的实施方式中,所述方法还包括:
[0023]在所述任务信息发生变更的情况下,将任务变更信息存储到所述调度器集群中的第三调度器;
[0024]控制所述第三调度器将所述任务变更信息发送至所述协调器集群;
[0025]通过所述协调器集群,将所述任务变更信息发送至所述调度器集群中除所述第三调度器之外的其他调度器进行存储。
[0026]本公开实施例中,通过协调器集群将任务变更信息存储到调度器集群的所有调度器的内存中,提升了调度效率。
[0027]根据第一方面,在一种可能的实施方式中,所述协调器集群包括至少一个zookeeper、至少一个chubby、至少一个redis或者至少一个memcache。
[0028]第二方面,本公开实施例还提供一种任务调度装置,包括:
[0029]获取模块,用于在确定需要执行目标任务的情况下,控制调度器集群中的多个调度器分别向协调器集群获取分布式锁;所述调度器中存储有执行器集群的关联信息;所述关联信息包括所述执行器集群中的多个执行器身份信息及每个执行器需要执行的任务信息;
[0030]确定模块,用于读取获取到所述分布式锁的第一调度器中的所述关联信息,并根据所述目标任务以及所述关联信息,从所述执行器集群中确定目标执行器;
[0031]执行模块,用于控制所述第一调度器调度所述目标执行器,执行所述目标任务。
[0032]根据第二方面,在一种可能的实施方式中,所述执行器的身份信息包括所述执行器的网际协议地址IP和/或所述执行器的名称;所述任务信息包括任务的执行内容、任务的执行时间以及任务身份标识号ID中的至少一种。
[0033]根据第二方面,在一种可能的实施方式中,所述确定模块具体用于:
[0034]根据所述目标任务以及所述关联信息,从所述执行器集群中确定多个关联执行器;
[0035]根据预设的调度规则,从所述多个关联执行器中确定所述目标执行器。
[0036]根据第二方面,在一种可能的实施方式中,所述获取模块具体用于:
[0037]基于预设的任务调度信息,确定是否需要执行所述目标任务;所述任务调度信息包括预设的时间节点、预设的时间间隔或者预设的任务调度次数。
[0038]根据第二方面,在一种可能的实施方式中,所述装置还包括:
[0039]存储模块,用于将所述关联信息存储到所述调度器集群中的第二调度器;
[0040]第一发送模块,用于控制所述第二调度器将所述关联信息发送至所述协调器集群;
[0041]第二发送模块,用于通过所述协调器集群,将所述关联信息发送至所述调度器集群中除所述第二调度器之外的其他调度器进行存储。
[0042]根据第二方面,在一种可能的实施方式中,所述存储模块还用于:
[0043]在所述任务信息发生变更的情况下,将任务变更信息存储到所述调度器集群中的第三调度器;
[0044]所述第一发送模块还用于:
[0045]控制所述第三调度器将所述任务变更信息发送本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:在确定需要执行目标任务的情况下,控制调度器集群中的多个调度器分别向协调器集群获取分布式锁;所述调度器中存储有执行器集群的关联信息;所述关联信息包括所述执行器集群中的多个执行器身份信息及每个执行器需要执行的任务信息;读取获取到所述分布式锁的第一调度器中的所述关联信息,并根据所述目标任务以及所述关联信息,从所述执行器集群中确定目标执行器;控制所述第一调度器调度所述目标执行器,执行所述目标任务。2.根据权利要求1所述的方法,其特征在于,所述执行器的身份信息包括所述执行器的网际协议地址IP和/或所述执行器的名称;所述任务信息包括任务的执行内容、任务的执行时间以及任务身份标识号ID中的至少一种。3.根据权利要求1所述的方法,其特征在于,所述根据所述目标任务以及所述关联信息,从所述执行器集群中确定目标执行器,包括:根据所述目标任务以及所述关联信息,从所述执行器集群中确定多个关联执行器;根据预设的调度规则,从所述多个关联执行器中确定所述目标执行器。4.根据权利要求1所述的方法,其特征在于,所述确定需要执行目标任务,包括:基于预设的任务调度信息,确定是否需要执行所述目标任务;所述任务调度信息包括预设的时间节点、预设的时间间隔或者预设的任务调度次数。5.根据权利要求1所述的方法,其特征在于,在所述确定需要执行目标任务之前,所述方法还包括:将所述关联信息存储到所述调度器集群中的第二调度器;控制所述第二调度器将所述关联信息发送至所述协调器集群;通过所述协调器集群,将所述关联信息发送至所述调度器集群中除所述第二调度器之外的其他调度...

【专利技术属性】
技术研发人员:刘俊佩冯贵龙
申请(专利权)人:武汉悦学帮网络技术有限公司
类型:发明
国别省市:

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

1