CloudQueueMessage - 重试机制

CloudQueueMessage - retry mechanism

我使用 Azure 存储队列来处理我的项目处理流程。任务正在进入队列,正在被后台服务器处理并从队列中移除。

在某些情况下,某些任务的处理失败(由于环境变量 - 这是无法预料的)。在这种情况下,我想再次重试执行任务。如果这次处理没问题,那么一切都很好——只需将其从队列中移除即可。否则,将其从队列中删除并将一些消息写入日志。

所以,我正在寻找一些机制来将元数据添加到 CloudQueueMessage 项目。我想到了一个名为 'retries' 的新元数据。这将是一个柜台。但是我没有看到任何将元数据添加到队列项的选项。

另一种选择是使用 Wrapper class 包装我的项目,这将添加 'retries' 属性。从队列中取出项目后,使用修改后的 'retries' 值重新插入它。这应该可行,但不是一个优雅的解决方案。

你有什么建议?

你不必。当您的工作者角色从队列中拾取该项目时,它实际上仍然存在,但标记为不可见。默认情况下,它会隐藏 30 秒。不过,您可以使用 "visibilityTimeout" 设置可见性。该项目会一直保留在队列中,直到您将其删除。