2013-06-02 81 views
1

我正在使用Microsoft Azure ServiceBus for Queue消息使用WCF进行订阅。我试图执行重试逻辑。我使用峰值/锁定查看消息,然后必须对消息进行一些本地处理。如果该处理失败,我解锁消息,以便我可以尝试再次处理它。问题是我需要建立一个有间隔的处理尝试。目前它会弹出回队列,然后几乎立即进行处理。尝试之间需要大约2分钟。Azure ServiceBus重试延迟

回答

1

如果您在重新处理该特定队列的消息之前总是需要等待2分钟,则可以尝试将队列上的锁定超时配置为2分钟(加上您期望它将带您到的时间处理消息),然后让锁过期,而不是解锁它。这有缺点,您需要密切关注处理时间,并在需要时延长锁定的超时时间。

另一种选择可能是接收并完成消息,将未来2分钟的计划交付设置为重新发送消息。这有一个缺点,就是你需要使用它并进行确认,这会带来一定的风险(例如,在你有机会重新发送消息之前,你的进程就会消亡)。