我有处理器从存储队列中获取消息。此消息有一些visibillity超时。但有时处理器比超时需要更多时间,因此处理器的另一个实例会再次处理消息(第二次不能通过处理器中的所有流程,因为我有一些验证)。在第一次完成所有流程之前,第二次处理消息的处理速度快于并且被删除。
但是当流程完成时,它还想删除已删除的消息。 结果我得到错误:
Message ="无法在指定的索引-1处转换字节[92] 代码页到Unicode。
在尝试第二次删除邮件之前,是否可以检查邮件是否已删除?
答案 0 :(得分:1)
首先要做的是让可见性超时足够长,以确保处理在超时到期之前完成。
如果这不是一个选项,或者您想要额外的安全性,可以使用CloudQueue.UpdateMessage()
来增加消息的可见性超时。