如何解决PeekLock模式下的Peek方法是否锁定服务总线消息?
我知道我们可以在PeekLock模式下使用Receive()方法来锁定消息,对其进行处理并最终完成()。但是,Peek()方法如何在PeekLock模式下工作?它会锁定消息吗?
var client = messagingFactory.CreateQueueClient("entity",ReceiveMode.PeekLock);
brokeredMessage = client.Peek();
另外,作为第二个问题,我知道我们可以重复调用Peek()来窥视所有Active结束消息。但是,可以重复使用Peek()方法来窥视所有不完整的字母消息吗?
解决方法
但是,Peek()方法如何在PeekLock模式下工作?它会锁定消息吗?
否,Peek()
不会锁定消息,而不管其模式如何。模式仅适用于Receive()
。不仅Peek()
甚至可以返回被另一个接收者锁定的消息。
但是,可以重复使用Peek()方法来窥视所有无效字母消息吗?
是的,死信消息驻留在另一个特殊队列中。您可以像从普通队列中一样Peek()
。
为提高吞吐量,您可以使用PeekBatch
代替Peek
。
总而言之,Peek
是用于消息浏览/诊断目的的API。您可能需要快速阅读official documentation。
注意:在非分区实体上的peek操作始终返回最旧的消息,但不在分区实体上返回。而是在消息代理首先响应的分区中返回最旧的消息。无法保证返回的消息是所有分区中最早的消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。