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
注意②:要使用延迟消息,需要在activemq.xml中开启
<!--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();
}
标签:pleadQueue,spring,mq,消息,textMessage,ActiveMQ,activemq,public,延迟 来源: https://www.cnblogs.com/a999/p/15959655.html