[英]Spring JMS Producer and Consumer interaction
如何确定使用者是否已经从生产者那里收到消息,或者如何通知生产者该消息已经在Spring JMS中发送/使用了?
you need to use request/reply by using org.springframework.jms.core.JmsTemplate.sendAndReceive(...)
on the producer side and on the consumer side the MessageListener method set in the container must return a value. 您需要通过在生产者端和消费者端使用
org.springframework.jms.core.JmsTemplate.sendAndReceive(...)
使用请求/答复,容器中设置的MessageListener方法必须返回一个值。
or make your producer subscribing to ActiveMQ.Advisory.MessageConsumed.Queue
to be notified when the message is consumed by having access to some properties like orignalMessageId
, take a look here http://activemq.apache.org/advisory-message.html 或通过访问
orignalMessageId
属性来使生产者订阅ActiveMQ.Advisory.MessageConsumed.Queue
,以便在消耗消息时收到通知,请在此处查看http://activemq.apache.org/advisory-message.html
you can use it like this : 您可以像这样使用它:
Destination advisoryDestination = org.apache.activemq.advisory.AdvisorySupport
.getMessageConsumedAdvisoryTopic(session.createQueue("yourQueue"));
MessageConsumer consumer = session.createConsumer(advisoryDestination);
consumer.setMessageListener(new MessageListener() {
@Override
public void onMessage(Message msg) {
System.out.println(msg);
System.out.println(((ActiveMQMessage) msg).getMessageId());
ActiveMQMessage aMsg = (ActiveMQMessage) ((ActiveMQMessage) msg).getDataStructure();
System.out.println(aMsg.getMessageId());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.