Azure队列异步消息

时间:2011-08-03 11:30:32

标签: azure azure-storage

我们正在考虑使用完整的队列:

  
      
  1. 请求(RequestQueue)
  2.   
  3. 响应(ResponseQueue)
  4.   

情景:

  
      
  1. 辅助角色将putMessage设置为RequestQueue,例如GetOrders
  2.   
  3. 第三方将监控RequestQueue。如果他们看到GetOrders   请求他们将获取消息,处理它们并将响应放入   ResponseQueue。
  4.   

问题: 如果我将putMessage放到RequestQueue中,我希望从ResponseQueue中获取结果。是否有简单的方法来实现这一目标以及如何实现?

谢谢。

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。如果将消息放入队列中,则必须从同一队列中弹出消息(它不会神奇地出现在任何其他队列中)。也许如果你解释了为什么你认为你需要两个单独的队列来推/弹,可能会有更广泛的答案和建议。

编辑:也许我误解了你的意图。我想我现在没有得到问题 - 你能帮忙澄清一下吗?您似乎在询问如何将消息放在一个队列上,通过将另一个消息放在另一个队列上来确认它,并让某人从第二个队列中读取确认信息?这是什么问题?我应该指出,您不希望某个第三方直接从Windows Azure队列中读取,因为这需要与它们共享主存储密钥(非启动程序)。也许您正在寻找如何从队列中读取第三方?

编辑2:听起来你想要使用第三方消费消息。由于安全原因(您需要共享主密钥),因此我提到的Windows Azure队列可能不太合适。相反,您可以通过队列对WCF服务进行分层(使用队列中的队列)或使用服务总线中的队列 - 这将允许您拥有单独的凭据。在简单性方面,使用服务总线功能可能是正确的选择。看看here进行演示。

答案 1 :(得分:0)

让某个工作人员监视问题队列,然后将答案发布到答案队列。接口队列管理器,使用任何类型的队列技术都不​​会有任何问题。此外,工作人员并不需要使用队列来获得答案..

注意事项:

  1. 工作服务可以访问两个队列
  2. 每个队列项都包含一个用于标识自己的序列化外键。