我有一个与其他用户类似的问题,但从未回答:
我正在使用Windows Azure创建辅助角色,并具有以下代码: OnMessageOptions options = new OnMessageOptions(){MaxConcurrentCalls = 10}; ... Client.OnMessage((receivedMessage)=> { ... },options); 消息泵启动后是否可以更新MaxConcurrentCalls?
我知道我可以循环我的工作者角色来更新设置,但是回收代码还有另外一种方法吗?再次调用OnMessage会抛出一个异常,没有设置暴露,我可以在调用后更改,我找不到循环/关闭QueueClient的方法。
答案 0 :(得分:0)
再次调用OnMessage会抛出异常,没有设置暴露,我可以在调用后更改,我找不到循环/关闭QueueClient的方法。
据我所知,OnMessage / OnMessageAsync只能在任何接收器上调用一次,我们无法在调用OnMessage时立即修改/重置OnMessageOptions。如果您通过相同的QueueClient再次调用OnMessage,它将返回错误消息The method 'OnMessage' or 'OnMessageAsync' has already been called.
。
答案 1 :(得分:0)
我发现你可以关闭QueueClient.MessageFactory,它会停止当前的侦听器,允许已经完成的工作完成,然后你可以使用更新的并发设置创建一个新的QueueClient。不像在监听器仍处于活动状态时更新并发性那样优雅,但它适用于我们。