[发明专利]一种利用延时队列实现发货通知的方法及其系统在审
申请号: | 202110976580.8 | 申请日: | 2021-08-24 |
公开(公告)号: | CN113656200A | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 刘德建;叶伟;陈宏展 | 申请(专利权)人: | 福建天晴数码有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06Q10/08 |
代理公司: | 福州旭辰知识产权代理事务所(普通合伙) 35233 | 代理人: | 程勇 |
地址: | 350000 福建省福州市君竹路83*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 延时 队列 实现 发货 通知 方法 及其 系统 | ||
本发明提供了一种利用延时队列实现发货通知的方法,该方法为:1、用户在系统A完成支付触发数据变动;2、系统A生成发货通知的消息至消息队列;3、发货通知任务监听消息队列,收到消息执行通知系统B的发货接口;4、系统A请求系统B发货接口;5、给消息设置过期时间,在延时消息队列上为过期消息指定转发器;6、消息过期后会转发到与指定转发器匹配的延时消息队列上,请求发货接口,直到通知成功,流程结束;该发明能精准的进行间隔通知,以确保发货通知完成。
技术领域
本发明涉及计算机通讯技术领域,特别是一种利用延时队列实现发货通知的方法及其系统。
背景技术
在微服务或者不同的系统之间,业务数据的变动有时需要通过接口进行通知,从而完成不同系统之间的协作。例如用户在系统A完成支付后通知系统B进行发货,系统A专门负责用户的支付业务,系统B专门负责商品的发货,各司其职。但假设用户在系统A完成支付后请求系统B的接口进行发货,但此时恰好系统B出现服务不可用的情况,通知系统B失败,如果当下进行重试大概率还是失败,因为如果出现系统服务不可用,可能需要一定的时间等待系统B的恢复后再进行通知,如果在系统服务宕机时重复对系统发起请求,可能使宕机的系统更难以处理,形成恶性循环。
rabbitmq是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。
发明内容
为克服上述问题,本发明的目的是提供一种利用延时队列实现发货通知的方法,通过间隔通知的机制,实现延时队列精准的间隔通知,来确保发货通知的完成。
本发明采用以下方案实现:一种利用延时队列实现发货通知的方法,所述方法包括如下步骤:
步骤S1、用户在系统A完成支付触发数据变动;
步骤S2、系统A生成发货通知的消息至消息队列;
步骤S3、发货通知任务监听消息队列,收到消息执行通知系统B的发货接口;
步骤S4、系统A请求系统B发货接口;
步骤S5、给消息设置过期时间,在延时消息队列上为过期消息指定转发器;
步骤S6、消息过期后会转发到与转发器匹配的延时消息队列上,请求发货接口,直到通知成功,流程结束。
进一步的,所述步骤S2进一步具体为:用户完成支付后,系统A需要对系统B进行发货通知时,不采用同步通知的方式,直接采用异步通知的方式,即生成一条发货通知的消息到消息队列,消息队列名queueName1=first_notify,让发货通知任务发送通知消息,进行发货。
进一步的,所述步骤S4进一步具体为:系统A请求系统B的发货接口,不仅需要商品编号goodsId,还需要对发货接口附加验签参数sign和时间戳ticket,以保证发货接口安全性;即系统B发货接口地址为发货链接+商品编号goodsId+时间戳ticket+验签参数sign;其中验签参数sign=(goodsId+ticket+slatKey)MD5,其中,盐值slatKey在系统A和系统B中存储有预设的值。
进一步的,所述步骤S5进一步具体为:首次请求系统B发货接口失败,则认定系统B出现不可用情况,每隔一段时间进行再通知,这里需要用到中间件rabbitmq的延时队列功能,设定延时队列名称queueName2=delay_notify,设定延时队列过期时间9-12分钟;在延时消息队列上为过期消息指定转发器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建天晴数码有限公司,未经福建天晴数码有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110976580.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种教学管理信息展示装置
- 下一篇:一种海上风电运维船用辅助登乘装置