我想现在是否可以使用 RabbitMQ 和 Spring Integration 来实现这个想法:
- 一个队列,可容纳 1 条消息。
- 消费者会请求这个消息,如果它存在于队列中,它将被传递给他们,如果不存在,他们会得到一个空或错误。
- 此消息(如果存在于队列中)不会因为已经下载而被删除,只有当生产者将另一条新消息放入队列时才会被删除。
此致!
我想现在是否可以使用 RabbitMQ 和 Spring Integration 来实现这个想法:
此致!
像这样的东西:
@Transactional
public Message getMessageFromQueue(String queue) {
try {
return this.rabbitTemplate.receive(queue);
}
finally {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
使用事务范围,我们将在事务中轮询队列。使用setRollbackOnly()
我们回调 TX,因此,将消息返回到队列中。