Azure辅助角色通信

发布于 2024-11-06 06:11:35 字数 92 浏览 0 评论 0原文

我有一个初级工人。它进行一些初始化。我希望其他工人等待这个初级工人。我想到的唯一方法是将消息放入队列中。工作人员将轮询队列。他们将在阅读消息后开始。有没有更好的同步方法?

I have a starter worker. It does some initializations. I want other workers to wait this starter worker. The only way in my mind is to put messages in a queue. Workers will poll the queue. They will start after reading the messages. Is there a better way to synchronize?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归途 2024-11-13 06:11:35

队列轮询的问题:一旦一个工作人员看到“我准备好了”队列消息,其他工作人员会发生什么?如果读者删除了队列消息(理应如此),其他人将永远看不到它。如果阅读器不删除它,那么您在其余时间都会保留该消息(并且下次启动时,该消息仍然存在)。

如果您在启动辅助角色实例上托管一个非常简单的 wcf 服务,并且 AreYouRunning() 方法返回 true/false,会怎么样?如果实例仍在 OnStart() 中,您应该无法连接到该服务。连接后,只需检查返回值即可。您只需要其他角色在其 OnStart() 或 Run() 中设置某种类型的轮询机制即可进行定期轮询。

可能还有其他方法可以做到这一点,例如在 Azure 表中添加一行。您仍然必须确保在其他角色启动之前可以从该表中清除“正在运行”状态,因此 wcf 服务思想可能会更好地满足您的需求。

The problem with queue-polling: Once one worker sees the "I'm ready" queue message, what happens with the other workers? If the reader deletes the queue message (as it should), the others never see it. If the reader doesn't delete it, then you have that message there for the rest of time (and next time you boot up, the message is still there).

What if you hosted a very simple wcf service on the booting-up worker role instance with an AreYouRunning() method returning true/false? If the instance is still in OnStart(), you shouldn't be able to connect to the service. Once you do connect, you just check the return value. You'd just need your other roles to set up some type of polling mechanism in their OnStart() or Run() to do the periodic polling.

There are probably other ways to do this, such as having a row in an Azure Table. You'd still have to ensure you can clear the "running" status from that table prior to the other roles starting up, so the wcf service idea might serve your needs better.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文