检查是否从azure队列中删除了消息

时间:2018-05-31 16:35:42

标签: c# .net azure azure-queues

我有处理器从存储队列中获取消息。此消息有一些visibillity超时。但有时处理器比超时需要更多时间,因此处理器的另一个实例会再次处理消息(第二次不能通过处理器中的所有流程,因为我有一些验证)。在第一次完成所有流程之前,第二次处理消息的处理速度快于并且被删除。

但是当流程完成时,它还想删除已删除的消息。 结果我得到错误:

  

Message ="无法在指定的索引-1处转换字节[92]   代码页到Unicode。

在尝试第二次删除邮件之前,是否可以检查邮件是否已删除?

1 个答案:

答案 0 :(得分:1)

首先要做的是让可见性超时足够长,以确保处理在超时到期之前完成。

如果这不是一个选项,或者您想要额外的安全性,可以使用CloudQueue.UpdateMessage()来增加消息的可见性超时。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.queue.cloudqueue.updatemessageasync?view=azure-dotnet

相关问题