本申请涉及任务调度领域,具体公开了一种任务调度方法、装置、设备及存储介质,所述方法包括:接收消息队列发送的待执行任务的任务触发消息,并对所述任务触发消息进行有效性检验,所述任务触发消息中包括所述待执行任务的任务标识;若对所述任务触发消息的有效性检验成功,则将所述任务标识缓存至任务缓存,并执行所述待执行任务;基于所述任务缓存中缓存的任务标识,更新所述待执行任务的任务状态;将更新后的所述待执行任务的任务状态发送至所述消息队列,使服务端基于更新后的所述待执行任务的任务状态进行更新。以提高单位时间内触发任务的数量以及系统的可靠性。发任务的数量以及系统的可靠性。发任务的数量以及系统的可靠性。
【技术实现步骤摘要】
任务调度方法、装置、设备及存储介质
[0001]本申请涉及任务调度领域,尤其涉及一种任务调度方法、装置、设备及存储介质。
技术介绍
[0002]目前,随着互联网公司的业务发展等,多任务、高并发场景已经变得非常普遍,单个任务的复杂度和并发任务的数量日益增加。因此,通常采用分布式任务调度系统,实现任务调度与任务执行分离,由服务端负责任务调度,客户端负责任务执行。但现有技术中大多使用HTTP实时调用方式,在服务端触发的任务数较多或者客户端响应缓慢的情况下,会严重影响任务触发性能,造成任务触发延迟甚至漏触发。
[0003]因此,如何提高单位时间内触发任务的数量以及系统的可靠性成为亟待解决的问题。
技术实现思路
[0004]本申请提供了一种任务调度方法、装置、设备及存储介质,以提高单位时间内触发任务的数量以及系统的可靠性。
[0005]第一方面,本申请提供了一种任务调度方法,所述方法包括:
[0006]接收消息队列发送的待执行任务的任务触发消息,并对所述任务触发消息进行有效性检验,所述任务触发消息中包括所述待执行任务的任务标识;若对所述任务触发消息的有效性检验成功,则将所述任务标识缓存至任务缓存,并执行所述待执行任务;基于所述任务缓存中缓存的任务标识,更新所述待执行任务的任务状态;将更新后的所述待执行任务的任务状态发送至所述消息队列,使服务端基于更新后的所述待执行任务的任务状态进行更新。
[0007]第二方面,本申请还提供了一种任务调度装置,所述装置包括:
[0008]消息校验模块,用于接收消息队列发送的待执行任务的任务触发消息,并对所述任务触发消息进行有效性检验,所述任务触发消息中包括所述待执行任务的任务标识;标识缓存模块,用于若对所述任务触发消息的有效性检验成功,则将所述任务标识缓存至任务缓存,并执行所述待执行任务;状态更新模块,用于基于所述任务缓存中缓存的任务标识,更新所述待执行任务的任务状态;状态发送模块,用于将更新后的所述待执行任务的任务状态发送至所述消息队列,使服务端基于更新后的所述待执行任务的任务状态进行更新。
[0009]第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的任务调度方法。
[0010]第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的任务调度方法。
[0011]本申请公开了一种任务调度方法、装置、设备及存储介质,通过接收消息队列发送的待执行任务的任务触发消息,然后对任务触发消息进行有效性校验,当对任务触发消息有效性校验成功时,将任务触发消息中的任务标识缓存至任务缓存中,并且执行待执行任务,再根据任务缓存中缓存的任务标识来更新待执行任务的任务状态,最后将更新后的任务状态发送至消息队列,使得服务端能够基于消息队列中的更新后的任务状态来对待执行任务进行更新。使用消息队列实现服务端与客户端之间的通信,能够异步传递消息,且解耦,任务触发通知不受客户端性能影响,同时任务执行状态反馈不受服务端性能影响,使用消息队列在多个客户端反馈执行状态时也能够起到缓冲作用。并且,使用缓存的任务标识来作为更新任务状态的基准,反馈任务状态时不受服务端性能的影响。
附图说明
[0012]为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013]图1是本申请实施例提供的一种任务调度方法的示意流程图;
[0014]图2是本申请实施例提供的接收任务触发消息的步骤示意流程图;
[0015]图3是本申请实施例提供的更新待执行任务的任务状态的示意流程图;
[0016]图4是本申请实施例提供的一种任务调度装置的示意性框图;
[0017]图5为本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
[0018]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0019]附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
[0020]应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0021]还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0022]本申请的实施例提供了一种任务调度方法、装置、计算机设备及存储介质。任务调度方法可应用于分布式任务调度系统中,实现客户端与服务端之间的任务调度。
[0023]下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0024]请参阅图1,图1是本申请实施例提供的一种任务调度方法的示意流程图。该任务调度方法通过设置消息队列,利用消息队列实现消息的异步传输,并根据缓存的任务标识
来更新任务状态,降低服务端性能对于反馈任务状态的影响。
[0025]如图1所示,该任务调度方法,具体包括:步骤S101至步骤S104。
[0026]S101、接收消息队列发送的待执行任务的任务触发消息,并对所述任务触发消息进行有效性检验。
[0027]在任务调度系统中,服务端继承了任务调度框架quartz,并且在待执行任务到点被触发时,在数据库中保存待执行任务的任务状态,此时,待执行任务的任务状态为“待通知”。同时,服务端组装任务触发消息,并将任务触发消息发送给消息队列,实现任务触发消息的异步发送。
[0028]客户端接收消息队列发送的待执行任务的任务触发消息,并对该任务触发消息进行有效性检验,以便于在检验成功后执行该待执行任务。其中,所述任务触发消息中包括所述待执行任务的任务标识。
[0029]在一实施例中,所述消息队列包括主队列和备队列;如图2所示,图2是本申请实施例提供的接收任务触发消息的步骤示意流程图,接收任务触发消息包括:步骤S1011、检测所述主队列发送的待执行任务的任务触发消息是否发送成功;步骤S1012、若所述主队列发送的待执行任务的任务触本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:接收消息队列发送的待执行任务的任务触发消息,并对所述任务触发消息进行有效性检验,所述任务触发消息中包括所述待执行任务的任务标识;若对所述任务触发消息的有效性检验成功,则将所述任务标识缓存至任务缓存,并执行所述待执行任务;基于所述任务缓存中缓存的任务标识,更新所述待执行任务的任务状态;将更新后的所述待执行任务的任务状态发送至所述消息队列,使服务端基于更新后的所述待执行任务的任务状态进行更新。2.根据权利要求1所述的任务调度方法,其特征在于,所述消息队列包括主队列和备队列;所述接收消息队列发送的待执行任务的任务触发消息,包括:检测所述主队列发送的待执行任务的任务触发消息是否发送成功;若所述主队列发送的待执行任务的任务触发消息未发送成功,则使用所述备队列发送所述任务触发消息。3.根据权利要求1所述的任务调度方法,其特征在于,所述方法包括:若对所述任务触发消息的有效性检验成功,则对所述待执行任务的任务状态进行预测得到预测任务状态,并将所述预测任务状态进行存储。4.根据权利要求3所述的任务调度方法,其特征在于,所述方法包括:当所述待执行任务执行完毕后,删除所述任务缓存中缓存的所述待执行任务的任务标识。5.根据权利要求4所述的任务调度方法,其特征在于,所述更新所述待执行任务的任务状态,包括:检测所述任务缓存中是否缓存有所述待执行任务的任务标识;若所述任务缓存中缓存有所述待执行任务的任务标识,则获取存储的所述预测任务状态,并根据所述预测任务状态更新所述待执行任务的任务状态;若所述任务缓存中没有缓存所述待执行任...
【专利技术属性】
技术研发人员:赖咸立,
申请(专利权)人:平安普惠企业管理有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。