Как непрерывно получать сообщения от IBM MQ JMS с использованием весенней загрузки? - PullRequest
0 голосов
/ 20 января 2020

У меня есть приложение весенней загрузки, которое получает JSON запросы и помещает его в очередь IBM MQ JMS. Может быть n количество JSON запросов, которые будут помещены в очередь. Моя цель - обработать каждый запрос из очереди. Как я могу прослушать очередь и получить сообщения одно за другим для обработки с помощью весенней загрузки?

1 Ответ

2 голосов
/ 20 января 2020

Необходимо реализовать прослушиватель как:

1: создать следующую конфигурацию:

@Bean
public MQConnectionFactory mqConnectionFactory(){
  MQConnectionFactory connectionFactory = new MQConnectionFactory();
  connectionFactory.setHostName(); //mq host name
  connectionFactory.setPort(); // mq port
  connectionFactory.setQueueManager(); //mq queue manager
  connectionFactory.setChannel(); //mq channel name
  connectionFactory.setTransportType(1);
  connectionFactory.setSSLCipherSuite(); //tls cipher suite name
  return connectionFactory;
}


@Bean()
public DefaultMessageListenerContainer myMessageEventContainer() {
  DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
  container.setAutoStartup(true);
  container.setConnectionFactory(mqConnectionFactory);
  container.setDestinationName(//queue name//);
  container.setMessageListener(new MyEventListener());
  return container;
}

2: реализовать прослушиватель сообщений:

public class MyEventListener implements MessageListener {

  @Override
  public void onMessage(Message message) {
    try {
      if (message instanceof TextMessage) {
        TextMessage textMessage = (TextMessage) message;
        String stringMessage = textMessage.getText();
        //do something with your message from queue
      }
    } catch (JMSException e) {
      //catch error
    }
  }
}
...