其他分享
首页 > 其他分享> > ActiveMQ-消息延迟

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();
    }

标签:pleadQueue,spring,mq,消息,textMessage,ActiveMQ,activemq,public,延迟
来源: https://www.cnblogs.com/a999/p/15959655.html