0

我正在开发一个要部署在 Azure 中的网站。现在我正在使用 Azure 队列向用户发送电子邮件。我通过休眠当前线程每 60 秒检查一次队列是否接收到消息。

我的问题是我不想等待线程并等待 60 秒,而是想在队列实际收到消息时触发消息发送功能。我找到了服务总线主题/订阅的机制,但我想知道我是否可以使用 Azure 队列实现相同的订阅机制(不使用主题/订阅)。这可能吗?Azure 队列是否可以侦听某些内容,以便仅在收到消息到队列时才能运行。我当然不想让线程睡觉。

谢谢你。

4

1 回答 1

1

Azure Queues 支持长轮询的问题之前已被问过 - 这就是我将其标记为重复的原因。

关于线程睡眠:不知道为什么你肯定不想让线程在队列上监听。它可以是一个单独的线程,这意味着您不会占用其他进程。而且......只要队列上有消息,您就不需要在调用之间睡觉GetMessage()- 只需继续阅读直到队列为空。

另外:为什么要等 60 秒?从 1 秒开始,也许是指数回退到 16 秒,然后停留在那里?每隔几秒钟检查一次几乎不需要任何费用(每 10 万笔交易一分钱)。这是一种非常常见的模式,即使在运行多个角色实例时也是如此。

于 2013-06-17T13:25:32.383 回答