如何在查看后从队列中删除消息?
How to remove message from a queue after peek?
我正在从队列中获取一批消息,然后选择我要查找的消息,然后如何将其余消息移回队列?或者只是将我需要的那个标记为不再可用?
var receiverClient = new MessageReceiver("ConnectionString", "MyQueue");
// getting a list of 100
var messageList = await receiverClient.PeekAsync(100);
var myMessage = messageList?.Where(x => x.MessageId == "MessageGuid").FirstOrDefault();
在那之后,我试过做这样的事情:
await receiverClient.RenewLockAsync(myMessage);
await receiverClient.CompleteAsync(myMessage.SystemProperties.LockToken);
但那次使用失败,我认为一定与我收到一批队列有关。有什么想法吗?
我想的另一种方法是创建另一个客户端(一个能够发送消息的客户端)然后使用 Receive()
而不是 Peek()
但我确实有 2 个客户端,我会这样做过程也有点慢
您需要 Receive()
处于 Peek-Lock
模式的消息,并将对要从队列中删除的消息调用 Abandon()
on the messages that you would like to send back to queue and Complete()
。
我正在从队列中获取一批消息,然后选择我要查找的消息,然后如何将其余消息移回队列?或者只是将我需要的那个标记为不再可用?
var receiverClient = new MessageReceiver("ConnectionString", "MyQueue");
// getting a list of 100
var messageList = await receiverClient.PeekAsync(100);
var myMessage = messageList?.Where(x => x.MessageId == "MessageGuid").FirstOrDefault();
在那之后,我试过做这样的事情:
await receiverClient.RenewLockAsync(myMessage);
await receiverClient.CompleteAsync(myMessage.SystemProperties.LockToken);
但那次使用失败,我认为一定与我收到一批队列有关。有什么想法吗?
我想的另一种方法是创建另一个客户端(一个能够发送消息的客户端)然后使用 Receive()
而不是 Peek()
但我确实有 2 个客户端,我会这样做过程也有点慢
您需要 Receive()
处于 Peek-Lock
模式的消息,并将对要从队列中删除的消息调用 Abandon()
on the messages that you would like to send back to queue and Complete()
。