System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 任务调度方法、装置、电子设备及可读存储介质制造方法及图纸_技高网

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

技术编号:40299531 阅读:5 留言:0更新日期:2024-02-07 20:47
本申请提供了一种任务调度方法、装置、电子设备及可读存储介质,用于避免任务调度系统分配任务时对数据库锁的抢占问题,以及降低任务调度系统中不同任务处理节点因负载不均衡而带来的影响。该方法包括:根据获取的待处理任务的任务属性信息,从多个任务分组中确定待处理任务所属的任务分组,并将待处理任务划分至其所属的任务分组中;将任一任务分组中包含的任一待处理任务作为目标任务,通过哈希运算方式,计算目标任务对应的任务哈希值;获取待分配的多个任务处理节点的节点数量,根据目标任务对应的任务哈希值以及节点数量,从待分配的多个任务处理节点中选择与目标任务相对应的任务处理节点;将目标任务分配至相对应的任务处理节点。

【技术实现步骤摘要】

本申请涉及数据处理,特别涉及一种任务调度方法、装置、电子设备及可读存储介质


技术介绍

1、随着互联网的日益发展,很多业务系统需要由大量的处理模块相互配合方可实现。为了保证业务系统在不同的业务场景下均能稳定运行,每个处理模块中会部署多个定时任务,但这样也导致了业务系统中存在海量的定时任务等待调度。在现有技术中,通常会在业务系统中设置任务调度系统,以确保不同处理模块之间的定时任务有序、高效地执行。

2、目前,任务调度系统在对多个同时触发的定时任务进行分配时,由于无法预先确定各个定时任务所对应的任务处理节点,因此为了防止各个任务处理节点重复处理同一任务,需要强依赖于数据库独占锁来获取任务,会出现数据库锁的抢占问题;并且,由于不同任务的资源占用情况不同,任务调度系统在分配任务时会导致不同任务处理节点出现负载不均衡的问题。


技术实现思路

1、本申请提供了一种任务调度方法、装置、电子设备及可读存储介质,用于避免任务调度系统分配任务时对数据库锁的抢占问题,以及降低任务调度系统中不同任务处理节点因负载不均衡而带来的影响。

2、第一方面,本申请提供了一种任务调度方法,包括以下步骤:

3、获取待处理任务的任务属性信息,根据所述任务属性信息,从多个任务分组中确定所述待处理任务所属的任务分组,并将所述待处理任务划分至所述待处理任务所属的任务分组中;

4、将任一任务分组中包含的任一待处理任务作为目标任务,通过哈希运算方式,计算所述目标任务对应的任务哈希值;</p>

5、获取待分配的多个任务处理节点的节点数量,根据所述目标任务对应的任务哈希值以及所述节点数量,从所述待分配的多个任务处理节点中选择与所述目标任务相对应的任务处理节点;

6、将所述目标任务分配至所述与所述目标任务相对应的任务处理节点;其中,每个任务处理节点用于将已分配的目标任务添加至与所述任务处理节点相对应的任务调度队列,以供任务调度模块根据所述任务调度队列进行调度处理。

7、第二方面,本申请提供了一种任务调度装置,包括:

8、获取模块,适于获取待处理任务的任务属性信息;

9、分配模块,适于根据所述任务属性信息,从多个任务分组中确定所述待处理任务所属的任务分组,并将所述待处理任务划分至所述待处理任务所属的任务分组中;以及适于获取待分配的多个任务处理节点的节点数量,根据所述目标任务对应的任务哈希值以及所述节点数量,从所述待分配的多个任务处理节点中选择与所述目标任务相对应的任务处理节点;以及适于将所述目标任务分配至所述与所述目标任务相对应的任务处理节点;其中,每个任务处理节点用于将已分配的目标任务添加至与所述任务处理节点相对应的任务调度队列,以供任务调度模块根据所述任务调度队列进行调度处理;

10、计算模块,适于将任一任务分组中包含的任一待处理任务作为目标任务,通过哈希运算方式,计算所述目标任务对应的任务哈希值。

11、第三方面,本申请提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任务调度方法。

12、第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述任务调度方法。

13、在本申请所提供的实施例中,首先,获取待处理任务的任务属性信息,并根据任务属性信息从多个任务分组中确定待处理任务所属的任务分组,将待处理任务划分至待处理任务所属的任务分组中;然后,将任一任务分组中包含的任一待处理任务作为目标任务,通过哈希运算方式,计算目标任务对应的任务哈希值;并获取待分配的多个任务处理节点的节点数量,根据目标任务对应的任务哈希值以及节点数量,从待分配的多个任务处理节点中选择与目标任务相对应的任务处理节点,从而将目标任务分配至多个任务处理节点中的任一任务处理节点。其中,每个任务处理节点用于将已分配的目标任务添加至与任务处理节点相对应的任务调度队列,以供任务调度模块根据任务调度队列进行调度处理。由此可见,将任务分成多个不同的任务分组,并且再通过哈希运算的方式将每个任务分组中的任务分配至不同的任务处理节点的方式,一方面,通过对任务进行分组,能够以分组为单位,分别将每个任务分组在多个任务处理节点之间进行分配,从而确保每个任务处理节点分配到的属于相同任务分组的任务数量大致均衡,避免因某一分组的任务大量分配至一个任务处理节点,而另一分组的任务则大量分配至其他任务处理节点,而导致的任务分配不均衡的问题。另一方面,针对每个任务分组中的任一任务,能够通过哈希运算方式将其分配至对应的任务处理节点,由于同一任务的任务键是唯一的,且哈希运算规则以及任务分配规则也是固定的,因此,在任务键唯一的情况下,同一任务所对应的哈希值以及分配结果也是固定不变的,相应的,通过该方式,能够针对每个任务分配对应的任务处理节点,且各个任务与其对应的任务处理节点之间的对应关系固定不变,每个任务处理节点只需处理分配至本节点的任务即可,从而避免了数据库锁方式所导致的锁抢占问题。

14、应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

本文档来自技高网...

【技术保护点】

1.一种任务调度方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述待处理任务的任务属性信息包括任务表达式信息,所述任务表达式信息用于表示待处理任务的触发方式;则所述根据所述任务属性信息,从多个任务分组中确定所述待处理任务所属的任务分组包括:

3.根据权利要求1或2所述的方法,其特征在于,所述目标任务对应的任务哈希值通过以下方式确定:根据所述目标任务的任务属性信息,生成所述目标任务的任务键;对所述任务键执行哈希运算,得到所述目标任务对应的任务哈希值;

4.根据权利要求1或2所述的方法,其特征在于,所述根据所述目标任务对应的任务哈希值以及所述节点数量,从所述待分配的多个任务处理节点中选择与所述目标任务相对应的任务处理节点包括:

5.根据权利要求1或2所述的方法,其特征在于,所述获取待处理任务的任务属性信息包括:从任务数据库中获取待处理任务的任务属性信息;

6.根据权利要求1或2所述的方法,其特征在于,所述待分配的多个任务处理节点的节点数量通过以下方式确定:

7.根据权利要求6所述的方法,其特征在于,所述获取所述节点管理集群发送的节点状态信息包括:

8.一种任务调度装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序在被处理器执行时实现如权利要求1-7中任一项所述的任务调度方法。

...

【技术特征摘要】

1.一种任务调度方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述待处理任务的任务属性信息包括任务表达式信息,所述任务表达式信息用于表示待处理任务的触发方式;则所述根据所述任务属性信息,从多个任务分组中确定所述待处理任务所属的任务分组包括:

3.根据权利要求1或2所述的方法,其特征在于,所述目标任务对应的任务哈希值通过以下方式确定:根据所述目标任务的任务属性信息,生成所述目标任务的任务键;对所述任务键执行哈希运算,得到所述目标任务对应的任务哈希值;

4.根据权利要求1或2所述的方法,其特征在于,所述根据所述目标任务对应的任务哈希值以及所述节点数量,从所述待分配的多个任务处理节点中选择与所述目...

【专利技术属性】
技术研发人员:邓林凡苏超曾琳铖曦蒋宁
申请(专利权)人:马上消费金融股份有限公司
类型:发明
国别省市:

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

1