【发布时间】:2013-01-16 04:50:06
【问题描述】:
生产者正在向队列发送许多消息。现在队列存储了这些消息。因此,在从消费者消费这些消息之前,如果生产者想要删除队列中的一些消息,他错误地发送了它并且他不希望接收者应该接收这个消息。我怎么能做到这一点。或任何其他建议,thnx
【问题讨论】:
生产者正在向队列发送许多消息。现在队列存储了这些消息。因此,在从消费者消费这些消息之前,如果生产者想要删除队列中的一些消息,他错误地发送了它并且他不希望接收者应该接收这个消息。我怎么能做到这一点。或任何其他建议,thnx
【问题讨论】:
您应该将会话保持为事务状态,并在最后提交或回滚。
如果您打算提交并且现在需要回滚,那么您的应用程序存在严重的设计问题,您应该对其进行审查。除此以外的任何操作都需要您的应用程序有一个数据库来处理接收并忽略它们,但是如果您可以为此使用数据库,那么您在以同步方式访问数据时会遇到性能问题。
【讨论】:
一种可能的方式:如果生产者知道要删除的消息的 id,那么它可以接收该消息以从队列中删除该消息。但这并不能保证删除消息,因为消费者可能在生产者意识到错误之前已经收到了消息。
【讨论】: