【发布时间】:2011-08-22 15:58:01
【问题描述】:
我有一个初学者。它做了一些初始化。我希望其他工人等待这个启动工人。在我看来,唯一的方法是将消息放入队列中。工人将轮询队列。他们将在阅读消息后开始。有没有更好的同步方式?
【问题讨论】:
标签: azure azure-queues
我有一个初学者。它做了一些初始化。我希望其他工人等待这个启动工人。在我看来,唯一的方法是将消息放入队列中。工人将轮询队列。他们将在阅读消息后开始。有没有更好的同步方式?
【问题讨论】:
标签: azure azure-queues
队列轮询的问题:一旦一个工作人员看到“我准备好了”队列消息,其他工作人员会发生什么?如果阅读器删除了队列消息(应该如此),其他人永远不会看到它。如果阅读器没有删除它,那么您将在剩下的时间里保留该消息(下次启动时,该消息仍然存在)。
如果您在启动工作角色实例上托管了一个非常简单的 wcf 服务,并且 AreYouRunning() 方法返回 true/false,该怎么办?如果实例仍在 OnStart() 中,您应该无法连接到该服务。连接后,只需检查返回值。你只需要你的其他角色在他们的 OnStart() 或 Run() 中设置某种类型的轮询机制来进行定期轮询。
可能还有其他方法可以做到这一点,例如在 Azure 表中设置一行。您仍然必须确保您可以在其他角色启动之前从该表中清除“正在运行”状态,因此 wcf 服务理念可能更好地满足您的需求。
【讨论】: