尝试 Role.Instances
财产。这是此页面中的代码,只是找到所有实例:
foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)
{
Trace.WriteLine("Instance ID: " + roleInst.Id);
}
题
我正在运行这个Azure CloudService。
为了确保我可以安全地利用Servicebus,我已经实施了此博客文章的建议: http://blogs.msdn.com/b/clemensv/archive/2012/07/07/30/transactions-in-windows-azure-with-service-bus-an-an-email-discussion.aspx
我没有不断对数据库表进行轮询,而是将消息发送到队列以触发背景过程以查看数据库并发送消息。
但是,当然,仅此一项就不会安全,因此我还必须定期检查数据库,以确保我什么都没有错过。
但是,由于我正在运行多个实例,因此我想传播此时间表,以提高效率,我认为可以通过从实例名称中获取最后一个整数来做到这一点。我知道如何使用microsoft.windowsazure.serviceruntime.roleenvironment.currentroleinstance.id获取此数字
但是我不知道如何获得实例总数,我需要这一点,以平等地分布时间表。
没有人知道如何获得此功能,而不必使用Azure的管理API?
解决方案
尝试 Role.Instances
财产。这是此页面中的代码,只是找到所有实例:
foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)
{
Trace.WriteLine("Instance ID: " + roleInst.Id);
}