我正在运行此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?
答案 0 :(得分:3)
尝试Role.Instances
属性。以下是此页面中的代码,仅用于查找所有实例:
foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)
{
Trace.WriteLine("Instance ID: " + roleInst.Id);
}