Question

Je dirige cette cloudserve azur.

Pour m'assurer que je peux tirer parti du ServiceBus de manière sûre, j'ai mis en œuvre les conseils de ce billet de blog: http://blogs.msdn.com/b/clemensv/archive/2012/07/30/transactions-in-windows-azure-with-service-bus-an-email-discussion.aspx

Au lieu de sonder constamment une table de base de données, j'envoie un message à une file d'attente pour déclencher un processus d'arrière-plan pour regarder dans la base de données et envoyer le message.

Mais bien sûr, cela seul ne serait pas en sécurité, donc je dois également vérifier périodiquement la base de données sur un horaire pour m'assurer que je n'ai rien manqué.

Mais comme j'exécute plusieurs instances, je voudrais diffuser ce calendrier, pour le rendre plus efficace, j'ai pensé que je pourrais le faire, en obtenant le dernier entier du nom d'instance. Je sais comment obtenir ce numéro en utilisant Microsoft.WindowsAzure.ServiceRuntime.Roleenvironment.Currentroleinstance.id

Mais je ne sais pas comment obtenir le nombre total d'instances, j'en ai besoin, afin de diffuser le calendrier de manière égale.

Quelqu'un sait-il comment obtenir cela, sans avoir à utiliser les API de gestion d'Azure?

Était-ce utile?

La solution

Essayer Role.Instances propriété. Voici le code de cette page uniquement pour trouver toutes les instances:

foreach (RoleInstance roleInst in RoleEnvironment.CurrentRoleInstance.Role.Instances)    
{
   Trace.WriteLine("Instance ID: " + roleInst.Id);    
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top