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

技术编号:36886055 阅读:10 留言:0更新日期:2023-03-15 21:33
本申请实施例提供一种分布式任务调度方法、装置、电子设备及存储介质,涉及网络安全技术领域。该方法包括获取加载任务以及任务标识;根据所述任务标识对服务数量取模,获得取模结果;判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务;该方法对任务进行有状态分片,使任务均匀的加载到所有部署的服务副本上,避免大量任务同时加载到同一个服务上的压力,解决了使用elasticjob加载大量调度任务时,出现的线程数飙升而导致的单机性能问题。的单机性能问题。的单机性能问题。

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


[0001]本申请涉及网络安全
,具体而言,涉及一种分布式任务调度方法、装置、电子设备及存储介质。

技术介绍

[0002]网站监控任务调度,是网站监控平台对用户网站进行动态监控的重要组成模块。由于网站监控平台每天都有大量的任务下发执行,对于网站监控平台,并发性、资源消耗等都影响着平台监控服务的稳定性与实时性,如何通过可靠、伸缩的任务调度,保障网站监控平台的稳定性与性能,就显得极为重要。
[0003]现有的基于elasticjob的任务周期调度,在下发任务或者加载已有任务时,针对每一个任务,都会常驻绑定一个作业调度器线程与执行器线程,elasticjob的分片机制,是为了保障任务的执行,使得任务可以并发的在多个服务上调度与执行。但每个服务器都会加载所有任务,随着平台任务量的不断增多,单机操作系统线程数成倍增长,对于服务器资源的消耗,只能通过增加单机硬件资源,调整服务器的线程数上限临时解决问题,但线程数飙升后仍存在单机性能受限问题。

技术实现思路

[0004]本申请实施例的目的在于提供一种分布式任务调度方法、装置、电子设备及存储介质,对任务进行有状态分片,使任务均匀的加载到所有部署的服务副本上,避免大量任务同时加载到同一个服务上的压力,解决了使用elasticjob加载大量调度任务时,出现的线程数飙升而导致的单机性能问题。
[0005]本申请实施例提供了一种分布式任务调度方法,所述方法包括:
[0006]获取加载任务以及任务标识;
[0007]根据所述任务标识对服务数量取模,获得取模结果;
[0008]判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务。
[0009]在上述实现过程中,当服务启动加载任务时,根据现有服务部署的副本数量,对任务进行有状态分片,使任务均匀的加载到所有部署的服务副本上,从而避免大量任务同时加载到同一个服务上的压力,解决了使用elasticjob加载大量调度任务时,出现的线程数飙升而导致的单机性能问题。
[0010]进一步地,在所述获取加载任务以及任务标识的步骤之前,所述方法还包括:
[0011]根据任务量确定需要部署的服务数量;
[0012]基于所述服务数量确定当前服务在集群中的索引。
[0013]在上述实现过程中,每一个服务副本启动时,指定每个服务副本在集群中的索引,以便后续根据服务索引进行取模。
[0014]进一步地,所述根据所述任务标识对服务数量取模,获得取模结果,包括:
[0015]获取所述任务标识的首字母;
[0016]从ascii表中查询所述首字母对应的编码值;
[0017]利用所述服务数量对所述编码值取模,得到取模结果。
[0018]在上述实现过程中,通过取模对任务进行有状态分片,使得在面对大量的调度任务时,可以均衡负载到每个服务器上去执行,极大的提高了任务调度执行的稳定性,同时减轻单机的性能压力,提升服务器处理任务的效率。
[0019]进一步地,所述判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务,包括:
[0020]若所述取模结果等于当前服务在集群中的索引,则调用elasticjob加载当前服务并进行周期执行。
[0021]在上述实现过程中,根据取模的结果,判断当前值是否等于当前副本在集群中的索引,如果相等,则调用elasticjob开始加载当前调度服务进行周期执行,由于任务标识的随机性,所有任务就会分散加载到每一个副本上,每个副本只会加载符合自己索引的任务,从而使各个副本均衡的对任务进行分布式调度,减轻服务器单机部署压力。
[0022]本申请实施例还提供一种分布式任务调度装置,所述装置包括:
[0023]任务获取模块,用于获取加载任务以及任务标识;
[0024]取模模块,用于根据所述任务标识对服务数量取模,获得取模结果;
[0025]判断模块,用于判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务。
[0026]在上述实现过程中,当服务启动加载任务时,根据现有服务部署的副本数量,对任务进行有状态分片,使任务均匀的加载到所有部署的服务副本上,从而避免大量任务同时加载到同一个服务上的压力,解决了使用elasticjob加载大量调度任务时,出现的线程数飙升而导致的单机性能问题。
[0027]进一步地,所述装置还包括:
[0028]服务数量确定模块,用于根据任务量确定需要部署的服务数量;
[0029]索引确定模块,用于基于所述服务数量确定当前服务在集群中的索引。
[0030]在上述实现过程中,每一个服务副本启动时,指定每个服务副本在集群中的索引,以便后续根据服务索引进行取模。
[0031]进一步地,所述取模模块包括:
[0032]首字母获取模块,用于获取所述任务标识的首字母;
[0033]编码查询模块,用于从ascii表中查询所述首字母对应的编码值;
[0034]取模结果获取模块,用于利用所述服务数量对所述编码值取模,得到取模结果。
[0035]在上述实现过程中,通过取模对任务进行有状态分片,使得在面对大量的调度任务时,可以均衡负载到每个服务器上去执行,极大的提高了任务调度执行的稳定性,同时减轻单机的性能压力,提升服务器处理任务的效率。
[0036]进一步地,所述判断模块包括:
[0037]执行模块,用于若所述取模结果等于当前服务在集群中的索引,则调用elasticjob加载当前服务并进行周期执行。
[0038]在上述实现过程中,根据取模的结果,判断当前值是否等于当前副本在集群中的
索引,如果相等,则调用elasticjob开始加载当前调度服务进行周期执行,由于任务标识的随机性,所有任务就会分散加载到每一个副本上,每个副本只会加载符合自己索引的任务,从而使各个副本均衡的对任务进行分布式调度,减轻服务器单机部署压力。
[0039]本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的分布式任务调度方法。
[0040]本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的分布式任务调度方法。
附图说明
[0041]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0042]图1为本申请实施例提供的一种分布式任务调度方法的流程图;
[0043]图2为本申请实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式任务调度方法,其特征在于,所述方法包括:获取加载任务以及任务标识;根据所述任务标识对服务数量取模,获得取模结果;判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务。2.根据权利要求1所述的分布式任务调度方法,其特征在于,在所述获取加载任务以及任务标识的步骤之前,所述方法还包括:根据任务量确定需要部署的服务数量;基于所述服务数量确定当前服务在集群中的索引。3.根据权利要求1所述的分布式任务调度方法,其特征在于,所述根据所述任务标识对服务数量取模,获得取模结果,包括:获取所述任务标识的首字母;从ascii表中查询所述首字母对应的编码值;利用所述服务数量对所述编码值取模,得到取模结果。4.根据权利要求1所述的分布式任务调度方法,其特征在于,所述判断所述取模结果是否等于当前服务在集群中的索引,以确定是否执行所述任务,包括:若所述取模结果等于当前服务在集群中的索引,则调用elasticjob加载当前服务并进行周期执行。5.一种分布式任务调度装置,其特征在于,所述装置包括:任务获取模块,用于获取加载任务以及任务标识;取模模块,用于根据所述任务标识对服务数量取模,获得取模结果;判断模块,用于判断所述取模结果是否等...

【专利技术属性】
技术研发人员:邢恩凯肖国颖
申请(专利权)人:北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:

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

1