peek 和 receive 之间的区别(Azure 服务总线)

Her*_*mez 1 servicebus azure azureservicebus azure-servicebus-queues

有谁知道天蓝色服务总线中的接收和查看选项之间的区别?

var client = new MessageReceiver("ServiceBusConnectionString", "Queue");

// difference between this one:
var peekResults =  await client.PeekAsync(100);

// and this one
var receiveResults = await client.ReceiveAsync(100);
Run Code Online (Sandbox Code Playgroud)

我发现我可以得到相同的结果,但我想知道我应该使用哪一个以及为什么?那么内部会有什么区别呢?

Sea*_*man 6

Peek 将获取消息而不增加传递计数器。这是一种“预览”消息而不从队列中删除消息的方法。

收到后会增加派送柜台。当在模式下接收时ReceiveAndDelete,消息将从队列中消失。使用PeekLock模式消息将保留在队列中,除非MaxDeliveryCount超出限制,并且它们将成为死信。