4

我已经将大多数队列示例视为轮询机制。是否可以将其更改为队列的侦听器。因为轮询可能会影响工人的表现。

4

2 回答 2

12

Windows Azure 存储队列和 Windows Azure 服务总线队列都使用轮询,并且本身没有通知功能;但是,Windows Azure 服务总线队列确实支持长轮询,这与您目前可以获得的通知方法最接近。当您使用 MessageReceiver 中的 Receive 方法时,它将使用长轮询(这意味着它将请求一条消息,如果队列中没有消息,则服务器不会立即响应,但会等待一段时间,直到有一条消息到来当它响应客户端时进入队列,或者直到空闲时间过去,在这种情况下它将返回一个没有消息的响应。接收方法本身会给人一种同步调用获取消息的印象,并且不会返回直到出现消息,

在服务总线主题中,您可以设置为订阅者,但您仍将轮询主题以获取消息,因此我认为这不是 OP 所要求的核心。

于 2012-07-31T10:08:28.000 回答
2

使用 Windows Azure 队列,您唯一的选择是轮询。使用Service Bus Topics/Subscription时,您可以拥有完整的 pub/sub 模型,其中您的订阅者将成为“听众”。

于 2012-07-31T10:08:25.210 回答