如何安全地停止消息监听器

时间:2018-09-04 10:15:05

标签: jms tibco-ems

如果我有一个JMS消息侦听器可以处理来自队列的消息,那么如何从主线程安全地停止侦听器?

在侦听器onMessage()方法中,我需要调用Message.acknowledgement()从队列中删除消息:

@Override
public void onMessage(Message message) {
    logger.info("Message received " + message.getJMSMessageID());
    // do something.
    message.acknowledge();
}

在主线程中,我认为我不可以仅调用connection.close()而不知道线程当前是否位于onMessage()中间。

由于交替同步的receive()方法是单线程的,并且具有更好的控制,是不是更好的解决方案?

0 个答案:

没有答案