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

技术编号:33556773 阅读:15 留言:0更新日期:2022-05-26 22:53
本申请公开了一种任务调度方法及装置、存储介质、计算机设备,该方法包括:获取待处理任务,将所述待处理任务记录在任务库中;基于线程池处理所述任务库中的落库任务,并对已处理的落库任务进行锁定;响应于任务调度触发信号,对所述任务库中未锁定的落库任务进行捞取得到调度任务,并对所述调度任务进行处理。本申请通过对任务库中未处理过的任务进行捞取和处理,有助于避免任务处理过程中时因异常造成任务无法执行,从而导致任务订单丢失、订单履约时间过长等情况发生,提高了任务执行的可靠性和时效性,进一步提升了用户体验。进一步提升了用户体验。进一步提升了用户体验。

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


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

技术介绍

[0002]随着互联网和计算机技术的发展,人们在生活中越来越多的使用电子商务平台,例如线上点餐、使用线上超市等等。订单的履约速度和成功率是影响用户在平台上留存的重要因素。对于订单量较大的应用场景,目前的订单履约系统,丢单、订单处理时间过长等异常情况时有发生,订单履约质量亟待提升。

技术实现思路

[0003]有鉴于此,本申请提供了一种任务调度方法及装置、存储介质、计算机设备,有助于提高任务执行的可靠性和时效性。
[0004]根据本申请的一个方面,提供了一种任务调度方法,包括:
[0005]获取待处理任务,将所述待处理任务记录在任务库中;
[0006]基于线程池处理所述任务库中的落库任务,并对已处理的落库任务进行锁定;
[0007]响应于任务调度触发信号,对所述任务库中未锁定的落库任务进行捞取得到调度任务,并对所述调度任务进行处理。
[0008]可选地,所述对所述调度任务进行处理,具体包括:
[0009]基于所述线程池处理所述调度任务;或者,
[0010]将所述调度任务加入到预设延时队列中,并通过预设守护线程处理所述预设延时队列中的任务;或者,
[0011]识别所述调度任务中的第一调度任务,将所述第一调度任务加入到预设延时队列中,通过预设守护线程处理所述预设延时队列中的所述第一调度任务,并基于所述线程池处理所述调度任务中的第二调度任务,其中,所述第一调度任务包括对应的时效性满足预设时效条件的任务,所述第二调度任务包括所述调度任务中除所述第一调度任务外的其他任务。
[0012]可选地,所述对所述调度任务进行处理之前,所述方法还包括:
[0013]基于所述调度任务的重试数据,确定所述调度任务的重试时间,其中,所述重试数据包括所述调度任务的重试次数和/或上次重试时间;
[0014]基于所述调度任务的重试时间,对所述调度任务进行处理。
[0015]可选地,所述基于线程池处理所述任务库中的落库任务之前,所述方法还包括:
[0016]基于预设熔断配置对所述任务库中的落库任务进行熔断校验,并在所述落库任务通过熔断校验时,执行所述基于线程池处理所述任务库中的落库任务;
[0017]相应地,所述对所述调度任务进行处理之前,所述方法还包括:
[0018]基于所述预设熔断配置对所述调度任务进行熔断校验,并在所述调度任务通过熔
断校验时,执行所述对所述调度任务进行处理。
[0019]可选地,所述基于线程池处理所述任务库中的落库任务之后,所述方法还包括:
[0020]若所述落库任务处理失败,则将处理失败的落库任务作为补偿任务存储至预设数据库中;
[0021]响应于任务补偿信号,捞取所述预设数据库中的所述补偿任务,并对所述补偿任务进行处理。
[0022]可选地,所述对所述补偿任务进行处理,具体包括:
[0023]基于所述线程池处理所述补偿任务;或者,
[0024]将所述补偿任务加入到预设延时队列中,并通过预设守护线程处理所述预设延时队列中的任务;或者,
[0025]识别所述补偿任务中的第一补偿任务,将所述第一补偿任务加入到预设延时队列中,通过预设守护线程处理所述预设延时队列中的所述第一补偿任务,并基于所述线程池处理所述补偿任务中的第二补偿任务,其中,所述第一补偿任务包括对应的时效性满足预设时效条件的任务,所述第二补偿任务包括所述补偿任务中除所述第一补偿任务外的其他任务。
[0026]可选地,所述获取待处理任务之前,所述方法还包括:
[0027]接收待处理订单,其中,所述待处理订单的类型包括外卖订单、卡券订单、商品订单中至少一种;
[0028]依据所述待处理订单,生成所述待处理任务。
[0029]根据本申请的另一方面,提供了一种任务调度装置,包括:
[0030]任务落库模块,用于获取待处理任务,将所述待处理任务记录在任务库中;
[0031]任务处理模块,用于基于线程池处理所述任务库中的落库任务,并对已处理的落库任务进行锁定;
[0032]任务调度模块,用于响应于任务调度触发信号,对所述任务库中未锁定的落库任务进行捞取得到调度任务,并对所述调度任务进行处理。
[0033]可选地,所述任务调度模块,具体用于:
[0034]基于所述线程池处理所述调度任务;或者,
[0035]将所述调度任务加入到预设延时队列中,并通过预设守护线程处理所述预设延时队列中的任务;或者,
[0036]识别所述调度任务中的第一调度任务,将所述第一调度任务加入到预设延时队列中,通过预设守护线程处理所述预设延时队列中的所述第一调度任务,并基于所述线程池处理所述调度任务中的第二调度任务,其中,所述第一调度任务包括对应的时效性满足预设时效条件的任务,所述第二调度任务包括所述调度任务中除所述第一调度任务外的其他任务。
[0037]可选地,所述任务调度模块,还用于:所述对所述调度任务进行处理之前,基于所述调度任务的重试数据,确定所述调度任务的重试时间,其中,所述重试数据包括所述调度任务的重试次数和/或上次重试时间;基于所述调度任务的重试时间,对所述调度任务进行处理。
[0038]可选地,所述装置还包括:
[0039]熔断模块,用于在所述基于线程池处理所述任务库中的落库任务之前,基于预设熔断配置对所述任务库中的落库任务进行熔断校验,并在所述落库任务通过熔断校验时,所述任务处理模块执行所述基于线程池处理所述任务库中的落库任务;
[0040]相应地,所述装置还包括:
[0041]熔断模块,还用于在所述对所述调度任务进行处理之前,基于所述预设熔断配置对所述调度任务进行熔断校验,并在所述调度任务通过熔断校验时,所述任务调度模块执行所述对所述调度任务进行处理。
[0042]可选地,所述装置还包括:
[0043]任务补偿模块,用于所述基于线程池处理所述任务库中的落库任务之后,若所述落库任务处理失败,则将处理失败的落库任务作为补偿任务存储至预设数据库中;响应于任务补偿信号,捞取所述预设数据库中的所述补偿任务,并对所述补偿任务进行处理。
[0044]可选地,所述任务补偿模块,具体用于:
[0045]基于所述线程池处理所述补偿任务;或者,
[0046]将所述补偿任务加入到预设延时队列中,并通过预设守护线程处理所述预设延时队列中的任务;或者,
[0047]识别所述补偿任务中的第一补偿任务,将所述第一补偿任务加入到预设延时队列中,通过预设守护线程处理所述预设延时队列中的所述第一补偿任务,并基于所述线程池处理所述补偿任务中的第二补偿任务,其中,所述第一补偿任务包括对应的时效性满足预设时效条件的任务,所述第二补偿任务包括所述补偿任务中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:获取待处理任务,将所述待处理任务记录在任务库中;基于线程池处理所述任务库中的落库任务,并对已处理的落库任务进行锁定;响应于任务调度触发信号,对所述任务库中未锁定的落库任务进行捞取得到调度任务,并对所述调度任务进行处理。2.根据权利要求1所述的方法,其特征在于,所述对所述调度任务进行处理,具体包括:基于所述线程池处理所述调度任务;或者,将所述调度任务加入到预设延时队列中,并通过预设守护线程处理所述预设延时队列中的任务;或者,识别所述调度任务中的第一调度任务,将所述第一调度任务加入到预设延时队列中,通过预设守护线程处理所述预设延时队列中的所述第一调度任务,并基于所述线程池处理所述调度任务中的第二调度任务,其中,所述第一调度任务包括对应的时效性满足预设时效条件的任务,所述第二调度任务包括所述调度任务中除所述第一调度任务外的其他任务。3.根据权利要求2所述的方法,其特征在于,所述对所述调度任务进行处理,具体包括:基于所述调度任务的重试数据,确定所述调度任务的重试时间,其中,所述重试数据包括所述调度任务的重试次数和/或上次重试时间;基于所述调度任务的重试时间,对所述调度任务进行处理。4.根据权利要求2所述的方法,其特征在于,所述基于线程池处理所述任务库中的落库任务之前,所述方法还包括:基于预设熔断配置对所述任务库中的落库任务进行熔断校验,并在所述落库任务通过熔断校验时,执行所述基于线程池处理所述任务库中的落库任务;相应地,所述对所述调度任务进行处理之前,所述方法还包括:基于所述预设熔断配置对所述调度任务进行熔断校验,并在所述调度任务通过熔断校验时,执行所述对所述调度任务进行处理。5.根据权利要求1所述的方法,其特征在于,所述基于线程池处理所述任务库中的落库任务之后,所述方...

【专利技术属性】
技术研发人员:吴惜文王冠立
申请(专利权)人:拉扎斯网络科技上海有限公司
类型:发明
国别省市:

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

1