[发明专利]一种基于队列的业务请求异步处理方法及装置有效
申请号: | 201911248185.7 | 申请日: | 2019-12-06 |
公开(公告)号: | CN111104235B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 姚璋;江明 | 申请(专利权)人: | 江苏苏宁物流有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 张慧娟 |
地址: | 210012 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 队列 业务 请求 异步 处理 方法 装置 | ||
1.一种基于队列的业务请求异步处理方法,其特征在于,所述方法包括如下步骤:
获取前台服务器接收到的业务请求,将所述业务请求以及与所述业务请求对应的处理信息按照预设的封装格式封装成消息;
按照预设的延时机制对所述消息进行延时处理后,将延时后的消息存储至缓存中间件中;
定时读取所述缓存中间件中到期的消息;
根据所述业务请求的业务类型选取相应的消息队列将读取到消息发送至对应的后台服务器进行异步处理,并向所述前台服务器返回响应信息;
其中,所述将延时后的消息存储至缓存中间件中包括:
将同一时刻发出的所有业务请求对应的消息存储至缓存中间件中的同一集合中,并生成对应的消息列表,其中所述消息列表的key为所述消息对应的业务请求的发出时间,value为所述消息转换成的字符串;
获取所有的消息列表的key生成有序集合;
所述定时读取所述缓存中间件中到期的消息包括:
定时遍历所述有序集合,获取所述有序集合中所有到期的key;
从所述缓存中间件中读取与所述到期的key对应的消息列表中的消息;
其中,采用定时器并行遍历所述有序集合,通过多个线程获取所有到期的key。
2.根据权利要求1所述的基于队列的业务请求异步处理方法,其特征在于,所述消息队列至少包括专用队列和普通队列,所述根据所述业务请求的业务类型选取相应的消息队列将读取到消息发送至对应的后台服务器进行异步处理包括:
获取所述读取到消息对应的业务请求的业务对应的重要程度;
将所述重要程度与预设阈值进行比较,若所述重要程度大于所述预设阈值,则选取专用队列将读取到消息发送至对应的后台服务器,否则,选取普通队列将读取到消息发送至对应的后台服务器。
3.根据权利要求1所述的基于队列的业务请求异步处理方法,其特征在于,所述方法还包括:
在将延时后的消息存储至缓存中间件中前,判断所述消息是否需要持久化,若需要,则将所述消息持久化到数据库中;
在根据所述业务请求的业务类型选取相应的消息队列将读取到消息发送至对应的后台服务器进行异步处理后,更新所述数据库中所述消息的状态。
4.一种基于队列的业务请求异步处理装置,其特征在于,所述装置包括:
数据封装模块,用于获取前台服务器接收到的业务请求,将所述业务请求以及与所述业务请求对应的处理信息按照预设的封装格式封装成消息;
延时处理模块,用于按照预设的延时机制对所述消息进行延时处理;
消息缓存模块,用于将延时后的消息存储至缓存中间件中;
消息读取模块,用于定时读取所述缓存中间件中到期的消息;
消息发送模块,用于根据所述业务请求的业务类型选取相应的消息队列将读取到消息发送至对应的后台服务器进行异步处理;
信息反馈模块,用于向所述前台服务器返回响应信息;
其中,所述消息缓存模块包括:
消息存储单元,用于将同一时刻发出的所有业务请求对应的消息存储至缓存中间件中的同一集合中;
列表生成单元,用于生成对应的消息列表,其中所述消息列表的key为所述消息对应的业务请求的发出时间,value为所述消息转换成的字符串;
集合生成单元,用于获取所有的消息列表的key生成有序集合;
所述消息读取模块包括:
定时遍历单元,用于定时遍历所述有序集合,获取所述有序集合中所有到期的key;
消息读取单元,用于从所述缓存中间件中读取与所述到期的key对应的消息列表中的消息;
其中,所述定时遍历单元还用于采用定时器并行遍历所述有序集合,通过多个线程获取所有到期的key。
5.根据权利要求4所述的基于队列的业务请求异步处理装置,其特征在于,所述消息发送模块包括:
数据获取单元,用于获取所述读取到消息对应的业务请求的业务类型对应的重要程度;
数据比较单元,用将所述重要程度与预设阈值进行比较;
消息发送单元,用于若所述重要程度大于所述预设阈值,则选取专用队列将读取到消息发送至对应的后台服务器,否则,选取普通队列将读取到消息发送至对应的后台服务器。
6.根据权利要求4所述的基于队列的业务请求异步处理装置,其特征在于,所述装置还包括:
持久化判断模块,用于在将延时后的消息存储至缓存中间件中前,判断所述消息是否需要持久化;
消息持久化模块,用于则将所述消息持久化到数据库中;
数据更新模块,用于在根据所述业务请求的业务类型选取相应的消息队列将读取到消息发送至对应的后台服务器进行异步处理后,更新所述数据库中所述消息的状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏苏宁物流有限公司,未经江苏苏宁物流有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911248185.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种食品加工机的检水方法
- 下一篇:一种压力容器用封头的加工方法