获取当前Azure云服务的实例数的最简单方法

时间:2013-11-07 14:55:52

标签: azure azure-worker-roles servicebus

我正在运行此Azure Cloudservice。

为了确保我能以安全的方式利用Servicebus, 我已经实施了这篇博文的建议:http://blogs.msdn.com/b/clemensv/archive/2012/07/30/transactions-in-windows-azure-with-service-bus-an-email-discussion.aspx

我不是不断地轮询数据库表,而是向队列发送消息以触发后台进程查看数据库并发送消息。

但当然,仅此一点,不安全,所以我还必须定期检查数据库,以确保,我没有错过任何东西。

但是因为我正在运行多个实例,所以我希望通过获取Instance名称中的最后一个整数来传播这个时间表,以提高效率,我想我可以做到这一点。我知道如何使用Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id获取此数字

但我不知道如何获得实例总数,我需要这样做,以便平等地传播时间表。

有没有人知道如何获得这个,而不必使用Azure的管理API?

1 个答案:

答案 0 :(得分:3)

尝试Role.Instances属性。以下是此页面中的代码,仅用于查找所有实例:

foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)    
{
   Trace.WriteLine("Instance ID: " + roleInst.Id);    
}