我们有一个将数据放入服务总线队列的服务。我们为此实现了重试策略。但根据Windows Azure团队的说法,队列可能会下降1-3分钟。所以我们应该有一个重试策略,应该尝试超过3分钟。
如果我们将重试3分钟,那么等待响应的客户端将超时,默认超时时间为60秒。如果我们增加超时时间,那么客户必须等待3分钟,以防停电。
实现这个场景的最佳方法是什么?
a. Should we keep client waiting? which will not be good experience for Client.
b. Should we keep timeout same , but then client will retry and we will have duplicate records?
建议吗?
这是一个一般的场景,需要遵循的基本规则之一是不允许任何客户端等待。
所以根据我的理解和建议,你可以做的是:1. 检查Queue中是否有请求。2. 如果1为true,则不要重试3.如果1为假,重试
超时也是一个很好的异常,可以抛出到客户端或任何用户友好的消息(您将需要一个新的方法)。
点是客户端应该知道一切,如果他在等待,如果他是在队列之外,或者如果他在队列中,那么只有你可以创建健壮和用户友好的应用程序