[发明专利]一种延时任务的处理方法、装置和电子设备在审
申请号: | 202111611399.3 | 申请日: | 2021-12-27 |
公开(公告)号: | CN114265845A | 公开(公告)日: | 2022-04-01 |
发明(设计)人: | 窦健;凌鹏 | 申请(专利权)人: | 上海淇玥信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/48;G06F9/50 |
代理公司: | 上海点威知识产权代理有限公司 31326 | 代理人: | 杜焱 |
地址: | 200333 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 延时 任务 处理 方法 装置 电子设备 | ||
本发明涉及计算机技术领域,具体涉及一种延时任务的处理方法、装置和电子设备,包括:获取至少包括延时时间、任务体、任务ID的第一延时任务;对所述第一延时任务进行筛选,得到第二延时任务;将所述第二延时任务对应的任务ID按照对应的延时时间存入循环周期为预设时间的时间轮中,封装时间轮每一刻度下的所有第二延时任务对应的任务ID,得到任务组ID;当所述时间轮每经过一个刻度时,匹配与该刻度相对应的任务组ID;读取与所述任务组ID相对应的任务体,将所述任务组ID相对应的任务体均匀分发到任务处理服务器各个节点进行任务处理。本发明通过对时间轮的管控,实现无锁形式下延时任务的大批量处理,提升对延时任务的处理效率。
技术领域
本发明涉及计算机技术领域,尤其涉及一种延时任务的处理方法、装置和电子设备。
背景技术
在执行业务逻辑时,候往往会碰到一些异步场景,而这些异步场景不需要在当时立刻得出结果,反而需要在一定时间后才能执行完成,比如:淘宝订单在1个小时后如果不支付则自动取消、拼团活动到期未拼成功自动退团等。
面对如此繁多的延时场景,在数据量不多的时候,通常可以用一个定时任务去轮询数据库,将到期的任务拿出来执行,但是如果在大数据量分布式的场景下,这种策略很容易产生OOM(out of memory,内存溢出)等系统异常,因此亟需一种解决上述问题的方法。
发明内容
本发明提供了一种延时任务的处理方法、装置和电子设备,用以实现延时任务的大批量处理,提升对延时任务的处理效率。
本说明书实施例提供一种延时任务的处理方法,包括:
获取至少包括延时时间、任务体、任务ID的第一延时任务;
对所述第一延时任务进行筛选,得到第二延时任务;
将所述第二延时任务对应的任务ID按照对应的延时时间存入循环周期为预设时间的时间轮中,封装时间轮每一刻度下的所有第二延时任务对应的任务ID,得到任务组ID;
当所述时间轮每经过一个刻度时,匹配与该刻度相对应的任务组ID;
读取与所述任务组ID相对应的任务体,将所述任务组ID相对应的任务体均匀分发到任务处理服务器各个节点进行任务处理。
优选的,在获取第一延时任务之后,包括,
采用宏观时间递增和局部hash的方式对所述第一延时任务进行分库分表。
优选的,所述对所述第一延时任务进行筛选,包括:
对所述第一延时任务进行校验;
当所述第一延时任务校验成功时,利用时间轮节点筛选出所述延时时间小于预加载时间的延时任务,得到第二延时任务。
优选的,在将所述第二延时任务对应的任务ID按照对应的延时时间存入循环周期为预设时间的时间轮中之前,包括:
将所述第二延时任务对应的任务体、任务ID缓存到延时任务数据库内。
优选的,所述匹配与该刻度相对应的任务组ID,包括:
根据所述延时时间将所述任务组ID放到相应的时间轮刻度的位置索引下;
根据所述时间轮刻度的位置索引匹配与该刻度相对应的任务组ID。
优选的,所述将所述任务体均匀分发到任务处理服务器各个节点进行任务处理,包括:
利用消息中间件将所述任务体均匀分发到任务处理服务器各个节点进行任务处理,所述消息中间件包括Rocketmq、Kafka。
优选的,所述预设时间为60s,所述时间轮为300格,所述时间轮转动时间为200ms/格。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海淇玥信息技术有限公司,未经上海淇玥信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111611399.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种纯剪切加载的砂土环剪实验装置
- 下一篇:一种生活垃圾处理装置