ActiveMQ-消息延迟

一、基本使用

下载安装:https://activemq.apache.org/activemq-5016004-release
进入bin文件夹中./activemq start启动
后台管理:http://localhost:8161/admin
注意①:远程访问需要更改jetty.xml中的配置将127.0.0.1改为0.0.0.0
image
注意②:要使用延迟消息,需要在activemq.xml中开启
image

<!--activeMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
# ========activeMQ========
spring.activemq.broker-url=tcp://*****:61616
spring.activemq.user=admin
spring.activemq.password=admin
# false(默认) = Queue;true = Topic
spring.jms.pub-sub-domain=false
# 账单申述队列名称
mq.queue.plead=****
@EnableJms
@Configuration
public class ActiveMqConfig {
@Value("${mq.queue.plead}")
private String pleadQueue;
@Bean
public Queue pleadQueue(){
return new ActiveMQQueue(pleadQueue);
}
}
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@Resource(name = "pleadQueue")
private Queue pleadQueue;
@Override
public void productMsg(Order order) {
Map<String, Object> headers = new HashMap<>();
//发送延迟队列,延迟24 小时
headers.put(ScheduledMessage.AMQ_SCHEDULED_DELAY, 1000 * 3600 * 24);
jmsMessagingTemplate.convertAndSend(pleadQueue, JSONObject.toJSONString(order), headers);
}
/**
* @param textMessage mq推送的消息
*/
@JmsListener(destination = "${mq.queue.plead}")
public void pleadAutoConfirm(TextMessage textMessage) throws JMSException {
log.info("activemq接受到的消息:{}", textMessage);
String messageText = textMessage.getText();
}
posted @   生生灯火半杯月  阅读(599)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示