Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
生产者正在向队列发送许多消息。现在队列存储了这些消息。因此,在从消费者那里消费这些消息之前,如果生产者想删除队列中的一些消息,他错误地发送了它并且他不希望接收者收到此消息。我怎么能做到这一点。或任何其他建议,谢谢
您应该将会话保持为已交易状态,并在最后提交或回滚。
如果您打算提交并且现在需要回滚,那么您的应用程序存在严重的设计问题,您应该对其进行审查。除此之外的任何操作都需要您的应用程序有一个数据库来处理接收并忽略它们,但是如果您可以为此使用数据库,那么您在以同步方式访问数据时会遇到性能问题。
一种可能的方法:如果生产者知道要删除的消息的 id,那么它可以接收该消息以从队列中删除该消息。但这并不能保证删除消息,因为消费者可能在生产者意识到错误之前已经收到了消息。