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

技术编号:33555570 阅读:15 留言:0更新日期:2022-05-26 22:52
本申请公开了一种任务调度方法、装置、电子设备及存储介质,涉及计算机技术领域,其任务调度方法应用于基于Quartz的任务调度系统,任务调度系统中包括多个调度器,每个调度器各自管理至少一个触发器,该方法包括:在调度器从自身管理的至少一个触发器中获取到待触发的目标触发器时,根据目标触发器中的触发规则生成对应的任务;将对应的任务写入目标任务执行客户端的缓存队列中,完成对目标触发器的触发。该方案可以通过增加调度器,以及将任务生成与任务执行的解耦,来提高并发任务的数量。来提高并发任务的数量。来提高并发任务的数量。

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


[0001]本申请涉及计算机
,尤其涉及一种任务调度方法、装置、电子设备及存储介质。

技术介绍

[0002]在相关技术中,通常使用Quartz框架来实现任务调度的功能,Quartz是目前被广泛应用的任务调度框架,不仅功能强大而且配置灵活。
[0003]但是Quartz集群对应的调度容器依赖数据库行锁,存在性能瓶颈。当同一时刻要触发的任务数达到一定级别时,就会出现任务触发延时的问题。

技术实现思路

[0004]本申请提供了一种任务调度方法、装置、电子设备及存储介质。
[0005]根据本申请的第一方面,提供了一种任务调度方法,所述方法应用于基于Quartz的任务调度系统,所述任务调度系统中包括多个调度器,每个所述调度器各自管理至少一个触发器,所述方法包括:
[0006]在所述调度器从自身管理的至少一个触发器中获取到待触发的目标触发器时,根据所述目标触发器中的触发规则生成对应的任务;
[0007]将所述对应的任务写入目标任务执行客户端的缓存队列中,完成对所述目标触发器的触发。
[0008]在本申请的一些实施例中,所述任务包括标识和具体内容;所述将所述对应的任务写入目标任务执行客户端的缓存队列中,包括:
[0009]将所述对应的任务的具体内容和标识写入数据库;
[0010]将所述对应的任务的标识写入目标任务执行客户端的缓存队列中。
[0011]在本申请的一些实施例中,所述方法还包括:
[0012]在接收到所述目标任务执行客户端的任务读取请求时,获取所述任务读取请求中携带的待执行任务的标识;所述待执行任务的标识为所述目标任务执行客户端从对应缓存队列中获取得到的;
[0013]根据所述待执行任务的标识,从所述数据库中读取所述待执行任务的具体内容;
[0014]将读取到的所述待执行任务的具体内容发送给所述目标任务执行客户端进行执行。
[0015]此外,在本申请的一些实施例中,所述方法还包括:
[0016]响应于接收到触发器新增请求,根据所述触发器新增请求生成待增触发器,并匹配用于管理所述待增触发器的目标调度器。
[0017]其中,所述匹配用于管理所述待增触发器的目标调度器,包括:
[0018]获取所述待增触发器的名称;
[0019]根据所述名称进行哈希,并通过一致性算法在所述多个调度器中确定与所述待增
触发器匹配的目标调度器。
[0020]根据本申请的第二方面,提供了一种任务调度装置,所述装置应用于基于Quartz的任务调度系统,所述任务调度系统中包括多个调度器,每个所述调度器各自管理至少一个触发器,所述装置包括:
[0021]生成模块,用于在所述调度器从自身管理的至少一个触发器中获取到待触发的目标触发器时,根据所述目标触发器中的触发规则生成对应的任务;
[0022]写入模块,用于将所述对应的任务写入目标任务执行客户端的缓存队列中,完成对所述目标触发器的触发。
[0023]在本申请的一些实施例中,所述任务包括标识和具体内容,所述写入模块具体用于:
[0024]将所述对应的任务的具体内容和标识写入数据库;
[0025]将所述对应的任务的标识写入目标任务执行客户端的缓存队列中。
[0026]在本申请的一些实施例中,所述装置还包括:
[0027]获取模块,用于在接收到所述目标任务执行客户端的任务读取请求时,获取所述任务读取请求中携带的待执行任务的标识;所述待执行任务的标识为所述目标任务执行客户端从对应缓存队列中获取得到的;
[0028]读取模块,用于根据所述待执行任务的标识,从所述数据库中读取所述待执行任务的具体内容;
[0029]发送模块,用于将读取到的所述待执行任务的具体内容发送给所述目标任务执行客户端进行执行。
[0030]此外,在本申请的一些实施例中,所述装置还包括:
[0031]新增模块,用于响应于接收到触发器新增请求,根据所述触发器新增请求生成待增触发器,并匹配用于管理所述待增触发器的目标调度器。
[0032]其中,所述新增模块具体用于:
[0033]获取所述待增触发器的名称;
[0034]根据所述名称进行哈希,并通过一致性算法在所述多个调度器中确定与所述待增触发器匹配的目标调度器。
[0035]根据本申请的第三方面,提供了一种电子设备,包括:
[0036]至少一个处理器;以及
[0037]与所述至少一个处理器通信连接的存储器;其中,
[0038]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的所述的方法。
[0039]根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行上述第一方面所述的方法。
[0040]根据本申请的技术方案,由于该任务调度系统中包括多个调度器,且每个调度器各自管理至少一个触发器,所以可以通过增加调度器来增加行锁的数量,从而可以充分利用数据库的性能,达到增加并发任务数的目的。此外,在调度器从自身管理的至少一个触发器中获取到待触发的目标触发器时,通过将生成的任务写入目标任务执行客户端的缓存队列中,以使目标任务执行客户端来执行对应的任务,实现了任务生成与任务执行的解耦,从
而可以避免由于任务执行过程对线程池中线程的占用而造成任务触发的延迟,进而可以进一步提高并发任务的数量。
[0041]应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0042]附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0043]图1为本申请实施例提出的一种任务调度方法的流程图;
[0044]图2为本申请实施例提供的另一种任务调度方法的流程图;
[0045]图3为本申请实施例中的一种新增触发器的流程图;
[0046]图4为本申请实施例提供的一种任务调度装置的结构框图;
[0047]图5为本申请实施例提供的另一种任务调度装置的结构框图;
[0048]图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。
具体实施方式
[0049]以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0050]在本申请的一些实施例中涉及的用户数据均经过授权、获取、处理、传输等符合法律法规要求。
[0051]需要说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法应用于基于Quartz的任务调度系统,所述任务调度系统中包括多个调度器,每个所述调度器各自管理至少一个触发器,所述方法包括:在所述调度器从自身管理的至少一个触发器中获取到待触发的目标触发器时,根据所述目标触发器中的触发规则生成对应的任务;将所述对应的任务写入目标任务执行客户端的缓存队列中,完成对所述目标触发器的触发。2.根据权利要求1所述的方法,其特征在于,所述任务包括标识和具体内容;所述将所述对应的任务写入目标任务执行客户端的缓存队列中,包括:将所述对应的任务的具体内容和标识写入数据库;将所述对应的任务的标识写入目标任务执行客户端的缓存队列中。3.根据权利要求2所述的方法,其特征在于,还包括:在接收到所述目标任务执行客户端的任务读取请求时,获取所述任务读取请求中携带的待执行任务的标识;所述待执行任务的标识为所述目标任务执行客户端从对应缓存队列中获取得到的;根据所述待执行任务的标识,从所述数据库中读取所述待执行任务的具体内容;将读取到的所述待执行任务的具体内容发送给所述目标任务执行客户端进行执行。4.根据权利要求1所述的方法,其特征在于,还包括:响应于接收到触发器新增请求,根据所述触发器新增请求生成待增触发器,并匹配用于管理所述待增触发器的目标调度器。5.根据权利要求4所述的方法,其特征在于,所述匹配用于管理所述待增触发器的目标调度器,包括:获取所述待增触发器的名称;根据所述名称进行哈希,并通过一致性算法在所述多个调度器中确定与所述待增触发器匹配的目标调度器。6.一种任务调度装置,其特征在于,所述装置应用于基于Quartz的任务调度系统,所述任务调度系统中包括多个调度器,每个所述调度器各自管理至少一个触发器,所述装置包括:生成模块,用于在所述调度器从自身管理的至少一个触...

【专利技术属性】
技术研发人员:田蒙
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

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

1