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 に答える