溫馨提示×

java啟動監(jiān)聽mq消息代碼如何寫

小億
140
2023-10-27 02:27:24
欄目: 編程語言

在Java中啟動監(jiān)聽MQ消息的代碼可以使用JMS(Java Message Service)的API來實現(xiàn)。下面是一個簡單的示例代碼:

import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class MQMessageListener {

    public static void main(String[] args) {
        try {
            // 創(chuàng)建連接工廠
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

            // 創(chuàng)建連接
            Connection connection = connectionFactory.createConnection();
            connection.start();

            // 創(chuàng)建會話
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            // 創(chuàng)建目的地(隊列或主題)
            Destination destination = session.createQueue("myQueue");

            // 創(chuàng)建消息消費者
            MessageConsumer consumer = session.createConsumer(destination);

            // 設置消息監(jiān)聽器
            consumer.setMessageListener(new MessageListener() {
                public void onMessage(Message message) {
                    try {
                        // 處理收到的消息
                        if (message instanceof TextMessage) {
                            TextMessage textMessage = (TextMessage) message;
                            System.out.println("Received message: " + textMessage.getText());
                        }
                    } catch (JMSException e) {
                        e.printStackTrace();
                    }
                }
            });

            // 等待消息的到達
            Thread.sleep(10000);

            // 關(guān)閉連接
            consumer.close();
            session.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上述代碼中,首先創(chuàng)建了一個連接工廠(ActiveMQConnectionFactory),然后使用連接工廠創(chuàng)建了連接(Connection),再使用連接創(chuàng)建了會話(Session),會話用于發(fā)送和接收消息。接著創(chuàng)建了一個消息消費者(MessageConsumer),并通過調(diào)用setMessageListener方法設置了一個消息監(jiān)聽器。消息監(jiān)聽器的onMessage方法會在有消息到達時被調(diào)用,可以在該方法中對收到的消息進行處理。最后通過調(diào)用Thread.sleep方法等待消息的到達,關(guān)閉連接時需要分別關(guān)閉消息消費者、會話和連接。

0