[发明专利]一种多策略实现延时队列的方法及系统在审

专利信息
申请号: 202210117195.2 申请日: 2022-02-08
公开(公告)号: CN114443313A 公开(公告)日: 2022-05-06
发明(设计)人: 李承林;徐士强;董玉全 申请(专利权)人: 浪潮云信息技术股份公司
主分类号: G06F9/52 分类号: G06F9/52;G06F9/54;G06F16/2455;G06F16/2458
代理公司: 济南信达专利事务所有限公司 37100 代理人: 陈婷婷
地址: 250100 山东省济南市高*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 策略 实现 延时 队列 方法 系统
【权利要求书】:

1.一种多策略实现延时队列的方法,其特征在于,基于系统已集成了redis,并实现了redis的zset新增、删除、查询的操作,该方法的实现包括:

消息实例,一条消息包括消息topic、消息体、延时时间、消费次数和消费异常处理类型;

消息产生,根据业务需要封装消息实例,设置topic、消息体、延时时间、消费次数、消费异常处理类型,通过redis的工具方法将消息放入zset;

消息消费,新建定时任务,定时任务执行间隔时间为消息消费间隔时间;

消费策略,包括消费方法横向多策略和消费方法纵向多策略:

消费方法横向多策略,每一种topic的消息可认作是同一种类型的消息,根据不同的topic进入不同的策略类,进行不同的消费逻辑;

消费方法纵向多策略,当一条消息被一个消费方法进行消费,如果业务处理一次成功,则将消息完全消费即可;如果业务处理失败,可根据消费异常处理类型进行不同的业务处理。

2.根据权利要求1所述的一种多策略实现延时队列的方法,其特征在于所述topic,即消息主题,可设置多个topic,每个topic对应一个消息消费方法;

所述消息体,即消息的主要内容,消息消费方法根据消息体的内容处理业务,最终实现消息的完全消费;

所述延时时间,设为毫秒数,则消息产生后最早在延时时间毫秒后被消费,若延时时间为空,则为立即消费;

所述消费次数:理想场景一条消息只会被消费一次,但如果一个消息一次消费业务没有处理成功,又不想将当前消息彻底消费或者丢弃掉,则可使用消费次数,即当前消息最多被消费的次数;

消费异常处理类型:当消息消费异常时,针对当前消息的处理类型处理,包括丢弃、循环消费、延时消费、指定次数消费、指定次数延时消费。

3.根据权利要求1或2所述的一种多策略实现延时队列的方法,其特征在于所述消息产生,key为消息的topic,value为当前消息的json串,score为当前系统毫秒数加上消息延时时间毫秒数。

4.根据权利要求1所述的一种多策略实现延时队列的方法,其特征在于所述定时任务,种类包括ApplicationRunner、Quartz、xxljob单机或分布式定时任务。

5.根据权利要求1或4所述的一种多策略实现延时队列的方法,其特征在于,所述消息消费,首先定义当前系统topic集合,该集合包含所有消息产生的topic;定时任务根据不同的topic获取redis的zset值,score为当前系统时间毫秒数,如果获取到,则说明有消息延时时间已到,则调用消息消费方法进行消息消费;

业务处理完成则调用redis工具类的删除方法将该值从redis的zset里移除,即完成了当前消息的完全消费。

6.根据权利要求1或2所述的一种多策略实现延时队列的方法,其特征在于,所述消费方法横向多策略,为了避免同一条消息被多个消费者消费,消费消息时加锁,可为非阻塞锁,包括redis锁,用于保证每一条消息只被一个消费者消费掉。

7.根据权利要求1或2所述的一种多策略实现延时队列的方法,其特征在于,所述消费方法纵向多策略,

当消费异常处理类型为丢弃,则在业务处理失败后将消息直接消费掉;

当消费异常处理类型为循环消费,则在业务处理失败后再次进行业务处理,直到业务处理成功后将消息消费;

当消费异常处理类型为延时消费,则在业务处理失败后再次设置当前消息的score,放回消息队列,等待下一次消费;

当消费异常处理类型为指定次数消费,则在业务处理失败后再次进行业务处理,每处理失败一次,消息的消费次数减一,直到归零,此时不管业务是否处理成功,都将消息完全消费掉;

当消费异常处理类型为指定次数延时消费,则在业务处理失败后再次设置当前消息score,并设置消息消费次数减一,放回消息队列等待下一次消费,当被消费时业务处理再次失败则判断消费次数是否归零,如果归零则不再进下一次消费,直到将消息完全消费掉。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210117195.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top