我使用Azure存储队列来处理我的项目处理流程。任务正在进入队列,由后台服务器处理并从队列中删除。
在某些情况下,某些任务的处理失败(由于环境变量--这是不可预期的)。在这种情况下,我想再次尝试执行任务。如果这一次处理正常,那么一切都很好--只需将其从队列中删除即可。否则,将其从队列中删除,并将一些消息写入日志。
因此,我正在寻找一些机制,以添加元数据到CloudQueueMessage项目。我在想一种叫做“重试”的新的元数据。这将是一个柜台。但我没有看到向队列项添加元数据的任何选项。
另一个选项是用包装类包装我的项目,它将添加'retries‘属性。将项目从队列中排出队列后,用修改后的“retries”值重新插入它。这应该有效,但不是一个优雅的解决方案。
你的建议是什么?
发布于 2015-09-24 09:21:05
你不需要这么做。当您的worker角色从队列中获取该项目时,它实际上仍然在那里,但标记为不可见。默认情况下,30秒内它是不可见的。不过,您可以使用"visibilityTimeout“设置可见性。该项目将保留在队列中,直到您删除它。
https://stackoverflow.com/questions/32757045
复制相似问题