activemq 延时队列以及不生效问题
最近在做的项目中有一个业务涉及到了订单的有效期的问题(即订单达到一定的时间未支付完成就让该订单失效),于是就想到了延时队列的方式,由于项目采用的是activemq,所以就写了个activemq延时队列代码如下:
发送方代码如下:
/*** 发送延迟消息* @param msg* @param delay*/public void send(Queue queue, String msg, long delay) {_log.info("发送MQ延时消息:msg={},delay={}", msg, delay);jmsTemplate.send(queue, new MessageCreator() {public Message createMessage(Session session) throws JMSException {TextMessage tm = session.createTextMessage(msg);tm.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delay);tm.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1);return tm;}});}
接收方代码如下:
@JmsListener(destination = MqConfig.DELAY_ORDER_QUEUE_NAME)@Async("mqExecutor")public void receive(String orderId) {String logPrefix = "【订单过期延时队列】";if (StringUtils.isEmpty(orderId)) {return;}_log.info("{}接收消息:payOrderId={}", logPrefix, orderId);//@todo }
然鹅,一切并没有如想象中那么顺利,订单发送到延时队列后立刻就被消费到了。。。
最后在网上的搜索过程中去查看了一下官方的文档, linux 版的activemq 和window 下的mq 没有开启延时功能,这时需要我们去mq 的配置文件中去将mq 的延时功能打开 ,巨坑啊。。。。
开启方式如下:
在mq 的安装目录下 的conf/activemq.xml
在配置文件的40 行里加上
schedulerSupport="true"
效果如下:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true">
将修改的文件保存,服务重启,mq 的延时功能就可以正常执行了
activemq 延时队列以及不生效问题相关推荐
- SpringBoot集成ActiveMq消息队列实现即时和延迟处理
原文链接:https://blog.csdn.net/My_harbor/article/details/81328727 一.安装ActiveMq 具体安装步骤:自己谷歌去 二.新建springbo ...
- 贼好用,冰河再次升级了这款开源的精准定时任务和延时队列框架!!
写在前面 在实际工作中,很多小伙伴在开发定时任务时,会采取定时扫描数据表的方式实现.然而,这种方式存在着重大的缺陷:如果数据量大的话,频繁的扫描数据表会对数据库造成巨大的压力:难以支撑大规模的分布式定 ...
- 兔老大的系统设计(二)定时系统(延时队列)
之前文章: 兔老大的系统设计(一)健康度系统 一.背景 延迟队列的应用场景非常广泛,如客户主动操作: 股票定投 顾客预约场景 会员定时续费/缴费 CSDN定时发布 或系统内部操作: 订单成功后,在30 ...
- 【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)
死信队列实现篇,参考文章:[SpringBoot]60.SpringBoot中整合RabbitMQ实现延时队列(死信队列篇) 一.介绍 1.什么是延时队列? 延时队列即就是放置在该队列里面的消息是不需 ...
- RabbitMQ真延时队列实现消息提醒功能
RabbitMQ真延时队列实现消息提醒功能 一.需求场景 用户可以制定多个计划,同时可给该计划设置是否需要到点提醒,且中途可以取消提醒或修改提醒时间. 二.需要解决的问题 学习过rabbitmq的同学 ...
- 基于Redis实现延时队列
文章目录 理论介绍 代码实现 理论介绍 首先贴图来说明redis是如何实现延时队列的 当用户发送一个消息请求给服务器后台的时候,服务器会检测这条消息是否需要进行延时处理,如果需要就放入到延时队列中,由 ...
- SpringBoot 整合:Redis延时队列的简单实现(基于有赞的设计)
点击关注公众号,Java干货及时送达 来源:blog.csdn.net/qq330983778/article/details/99341671 设计 之前学习Redis的时候发现有赞团队之前分享过一 ...
- 怎么设计一个合适的延时队列?
[文章来源]https://sourl.cn/pcgvTp 延时队列技术调研 项目背景 延迟队列,它是一种带有延迟功能的消息队列,目前工作中有几处需延时处理的应用场景. 可选技术参考 kafka 考虑 ...
- 一口气说出 6种 延时队列的实现方案,大厂offer稳稳的
下边会介绍多种实现延时队列的思路,文末提供有几种实现方式的 github地址.其实哪种方式都没有绝对的好与坏,只是看把它用在什么业务场景中,技术这东西没有最好的只有最合适的. 一.延时队列的应用 什么 ...
最新文章
- python和c++哪个好找工作-python和C++语言有何优缺点?哪个更适合人工智能?
- cursor的moveToNext()与moveToFirst()
- php strtotime 和 date 日期操作
- 移动端H5图片上传的那些坑
- hdu 3480 斜率dp
- Linux环境 Oracle 监听和服务 日常操作
- 如何在Ubuntu中使用root账号登录(新增Ubuntu12.04/14.04)?
- Cocos2d-x的Android.mk自动生成
- Codeforces Round #565 (div. 3)
- java steam_Java,Steam控制器和我
- 单片机通过串口与电脑通信
- 使用多种AI算法玩方格迷宫——基于Value的RL算法 【开源】
- imac html5播放器,超给力的五款Mac最佳高清音乐播放器
- Simultaneously Localize, Segment and Rank the Camouflaged Objects阅读笔记
- 雷石服务器系统怎么设置分辨率,雷石传奇改惊艳触摸屏不能校准 触摸不准问题?...
- SuperMap GIS的TIN地形数据优化
- windows下discus的搭建
- 客户端命令行工具 - 接口调试神器 HTTPie
- 新手程序员如何提升自己的编程能力
- 彻底清除已删除的文件
热门文章
- 功率谱 幅值谱_疲劳损伤谱(FDS)的基本原理
- cactiez mysql_cactiez使用mysql数据库出现以下报错:“[ERROR] /usr/sbin/mysqld”
- [js高手之路]this知多少
- 漫谈数据仓库之维度建模
- A summary of the post “How I explained OOD to my wife
- C# + .net下使用serialPort做串口开发 1
- js 获取url多个参数
- anaconda更新python版本mac_macos - 如何使用conda升级到Python 3.6?
- wpfdiagram 学习 教学_开启双自主学习模式 助力学生生命成长——长清湖实验学校开展“双自主合作学习”教学模式...
- @javax.inject.Inject,新的注入依赖规范