本申请涉及任务处理领域,特别是涉及一种定时任务处理方法和装置。
背景技术:
1、现在的业务场景中经常会有需要延迟调度的地方,如订单下单之后如果三十分钟之内没有托管就自动取消订单;订单1个小时未完善发短信通知雇主完善需求,订单自动评价;订单7天自动确认收货等等。
2、目前这样的场景,通常会以一个计划任务扫描的方式实现。对于这样扫描得到的数据,需要遍历所有的对象,一个一个的检查数据是否过期等,这种方式大大浪费了处理资源,并且导致定时任务的处理效率不高。
技术实现思路
1、为了解决上述技术问题,本申请提供了一种定时任务处理方法和装置,无需通过遍历所有定时任务的方式检查每个任务是否到期,只需要通过指针的指向便可以确定哪些定时任务到期需要处理,即指针所指向的目标时间格中的定时任务都已经到达处理时间,从而大大降低处理资源的消耗,提高定时任务的处理效率。
2、第一方面,本申请实施例提供一种定时任务处理方法,所述方法包括:
3、接收待处理定时任务,所述待处理定时任务中包括预设延迟时间;
4、根据所述预设延迟时间确定所述待处理定时任务的目标延迟时间;
5、根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中;
6、当所述单层时间轮的指针转动到所述目标时间格时,遍历所述目标时间格的定时任务列表中的定时任务,以便对遍历到的定时任务进行处理,所述遍历到的定时任务包括所述待处理定时任务。
7、在一种可能的实现方式中,所述待处理定时任务中还包括所述待处理定时任务的发送时间,所述根据所述预设延迟时间确定所述待处理定时任务的目标延迟时间,包括:
8、根据所述待处理定时任务的预设延迟时间、所述待处理定时任务的发送时间和当前时间进行延迟时间计算,得到所述目标延迟时间。
9、在一种可能的实现方式中,所述方法还包括:
10、将所述待处理定时任务存储至远程字典服务器中。
11、在一种可能的实现方式中,所述方法还包括:
12、接收消费结果指示信息;
13、若所述消费结果指示信息指示所述待处理定时任务的消费成功,从所述远程字典服务器中移除所述待处理定时任务。
14、在一种可能的实现方式中,所述方法还包括:
15、将所述遍历到的定时任务推送至日志系统,以便所述日志系统向目标消费者推送所述遍历到的定时任务。
16、在一种可能的实现方式中,在根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中之前,所述方法还包括:
17、根据所述预设延迟时间确定所述待处理定时任务是否到期;
18、若到期,将所述待处理定时任务推送至日志系统;
19、若未到期,执行根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中的步骤。
20、在一种可能的实现方式中,所述单层时间轮中包括多个时间格,所述多个时间格的数量和每个时间格的基本时间跨度是根据定时场景预先配置的。
21、第二方面,本申请实施例提供一种定时任务处理装置,所述装置包括:
22、接收单元,用于接收待处理定时任务,所述待处理定时任务中包括预设延迟时间;
23、确定单元,用于根据所述预设延迟时间确定所述待处理定时任务的目标延迟时间;
24、存放单元,用于根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中;
25、处理单元,用于当所述单层时间轮的指针转动到所述目标时间格时,遍历所述目标时间格的定时任务列表中的定时任务,以便对遍历到的定时任务进行处理,所述遍历到的定时任务包括所述待处理定时任务。
26、在一种可能的实现方式中,所述待处理定时任务中还包括所述待处理定时任务的发送时间,所述确定单元具体用于:
27、根据所述待处理定时任务的预设延迟时间、所述待处理定时任务的发送时间和当前时间进行延迟时间计算,得到所述目标延迟时间。
28、在一种可能的实现方式中,所述装置还包括:
29、存储单元,用于将所述待处理定时任务存储至远程字典服务器中。
30、在一种可能的实现方式中,所述装置还包括移除单元:
31、所述接收单元,还用于接收消费结果指示信息;
32、所述移除单元,用于若所述消费结果指示信息指示所述待处理定时任务的消费成功,从所述远程字典服务器中移除所述待处理定时任务。
33、在一种可能的实现方式中,所述装置还包括:
34、推送单元,用于将所述遍历到的定时任务推送至日志系统,以便所述日志系统向目标消费者推送所述遍历到的定时任务。
35、在一种可能的实现方式中,所述确定单元,还用于在根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中之前,根据所述预设延迟时间确定所述待处理定时任务是否到期;
36、若到期,所述推送单元,用于将所述待处理定时任务推送至日志系统;
37、若未到期,触发所述存放单元执行根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中的步骤。
38、在一种可能的实现方式中,所述单层时间轮中包括多个时间格,所述多个时间格的数量和每个时间格的基本时间跨度是根据定时场景预先配置的。
39、由上述技术方案可以看出,本申请可以接收待处理定时任务,待处理定时任务中包括预设延迟时间;根据预设延迟时间确定待处理定时任务的目标延迟时间;根据目标延迟时间将待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中;当单层时间轮的指针转动到目标时间格时,遍历目标时间格的定时任务列表中的定时任务,以便对遍历到的定时任务进行处理,遍历到的定时任务包括待处理定时任务。在本申请中,随着时间的不断推移,单层时间轮的指针也不断推进,指针所指向的时间格中的定时任务即为当前时间需要处理的定时任务,故本申请无需通过遍历所有定时任务的方式检查每个任务是否到期,只需要通过指针的指向便可以确定哪些定时任务到期需要处理,即指针所指向的目标时间格中的定时任务都已经到达处理时间,从而大大降低处理资源的消耗,提高定时任务的处理效率。
1.一种定时任务处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述待处理定时任务中还包括所述待处理定时任务的发送时间,所述根据所述预设延迟时间确定所述待处理定时任务的目标延迟时间,包括:
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,在根据所述目标延迟时间将所述待处理定时任务存放至单层时间轮的目标时间格的定时任务列表中之前,所述方法还包括:
7.根据权利要求1-6任一项所述的方法,其特征在于,所述单层时间轮中包括多个时间格,所述多个时间格的数量和每个时间格的基本时间跨度是根据定时场景预先配置的。
8.一种定时任务处理装置,其特征在于,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述待处理定时任务中还包括所述待处理定时任务的发送时间,所述确定单元具体用于:
10.根据权利要求8所述的装置,其特征在于,所述装置还包括: