这是Windows Azure Service Bus上SubscriptionClient上ClientReceive的最长时间

时间:2013-07-27 18:28:28

标签: azure azureservicebus azure-servicebusrelay

这很奇怪,我不确定,但不久前我记得我做过这样的事情

SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(this._connectionString, topicName, subscription);
BrokeredMessage message = Cient.Receive(TimeSpan.MaxValue);

天数以最大一分钟返回null或消息

的调用

但具体问题是,我想知道默认情况下哪个是maxtime服务器响应可以等待(服务总线),直到它返回一条消息,即使它是空的

我也知道Timespan.MaxValue是我指示等待的值,但我真的需要知道我是否放了maxvalue(很多时候不等到它完成并发现它),Azure什么时候会得到消息的回报

1 个答案:

答案 0 :(得分:1)

从API的角度来看,您可以传入任何TimeSpan值,并且它将被接受。即使没有消息,它比你指定的更快返回的原因可能是网络故障,服务端更新等。

您决定放在那里的时间应该基于您期望消息的频率以及您希望控制权何时能够干净地关闭您的客户端进程。假设您希望每分钟发送一次消息,然后将超时设置为5分钟并且返回空值可能表示系统不健康。还要说你正在关闭服务,你想不要调用下一个接收并希望所有待处理的接收完成,这样你就可以将超时限制在几分钟。