Java RabbitMQ+;Spring集成。队列大小1,仅在重写时删除
我现在想知道,是否有可能通过RabbitMQ和Spring集成实现这一想法:Java RabbitMQ+;Spring集成。队列大小1,仅在重写时删除,java,rabbitmq,spring-integration,amqp,spring-integration-amqp,Java,Rabbitmq,Spring Integration,Amqp,Spring Integration Amqp,我现在想知道,是否有可能通过RabbitMQ和Spring集成实现这一想法: 一个队列,具有1条消息的容量 消费者将请求此消息,如果该消息存在于队列中,则会将其传递给他们,如果不存在,则会得到null或错误 此消息(如果存在于队列中)不会因已下载而被删除,仅当生产者将另一条新消息放入队列时才会被删除 致以最良好的祝愿 类似这样: @Transactional public Message getMessageFromQueue(String queue) { try {
@Transactional
public Message getMessageFromQueue(String queue) {
try {
return this.rabbitTemplate.receive(queue);
}
finally {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
使用事务作用域,我们将轮询事务中的队列。使用
setRollbackOnly()
我们回调TX,因此将消息返回队列。给我一个异常:org.springframework.transaction.notTransactionException:scopeRight中无事务方面管理的事务状态,您必须在应用程序上下文中执行@EnableTransactionManagement
,首先:是的,下次。我对你的问题投了赞成票:也许你已经被允许接受答案了。一般问题是,有类似问题的人如果看到一个被接受的答案,就会考虑解决方案。现在看来,至少允许我参与meta。我将继续参与以获得更多权限。谢谢你的建议和投票