2

我正在运行这个 Azure Cloudservice。

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

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

但当然,仅此一项并不安全,因此我还必须按计划定期检查数据库以确保没有遗漏任何内容。

但是由于我正在运行多个实例,我想分散这个时间表,以提高效率,我想我可以通过从实例名称中获取最后一个整数来做到这一点。我知道如何使用 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.CurrentRoleInstance.Id 获得这个号码

但我不知道如何获得实例总数,我需要它,以便平均分配时间表。

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

4

1 回答 1

3

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

foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)    
{
   Trace.WriteLine("Instance ID: " + roleInst.Id);    
}
于 2013-11-07T15:04:16.427 回答