L’objectif de la modification de cette classe consiste à séparer les parties spécifiques au rôle Worker du code utilisable dans n’importe quel rôle Worker. Pour faciliter son intégration dans n’importe quelle application Azure, vous pouvez concevoir l’API au moyen de méthodes d’extension sur la classe Microsoft.ServiceHosting.Service Run
Gérer les fonctionnalités communes
time.RoleEntryPoint. La première étape consiste à créer une méthode capable de gérer les fonctionnalités communes dans votre méthode Start(). Les actions communes vont rester en sommeil pendant un certain temps, elles vont s’exécuter, puis elles vont déterminer si vous continuez à traiter des requêtes. Cette fonctionnalité est facile à représenter au moyen de la méthode d’extension suivante :
public static void RunWorker(
this RoleEntryPoint role,
TimeSpan sleepTime,
Func
{
do
{
Thread.Sleep(sleepTime);
} while (method());
}
Ensuite, vous devez examiner les actions effectuées à chaque étape. Ce rôle Worker effectue son travail en utilisant les éléments présents dans la table Azure Storage. Il s’agit d’un schéma commun: exécuter des requêtes sur une table Azure, traiter certains éléments, puis enregistrer les modifications dans la table en question. Cela correspond à une autre méthode d’extension utile. Les éléments de table Azure sont accessibles via un contexte de service sous la forme IQueryTable
public static void ProcessTableData
this IQueryable
Action
TableStorageDataServiceContext context)
{
sequence.ForAll(action);
context.SaveChanges();
}
public static void ForAll
sequence, Action
{
foreach (T item in sequence)
action(item);
}
ForAll est une méthode d’aide qui fournit une interface simple permettant d’agir sur tous les éléments dans une séquence. ProcessTableData n’est pas une méthode aussi compliquée qu’il n’y paraît, car vous pouvez construire votre requête dans le code appelant. N’importe quel code LINQ fonctionnera pour filtrer la table (where, take, skip, orderby ou n’importe quelle autre méthode LINQ). En fait, c’est ce que j’effectue dans ma méthode Start(). La méthode Start() réusinée a l’aspect suivant :
public override void Start()
{
RoleManager.WriteToLog("Information",
"Worker Process entry point called");
StorageAccountInfo accountInfo =
StorageAccountInfo.GetAccountInfoFromConfiguration(
"TableStorageEndpoint");
LinkDataServiceContext context =
new LinkDataServiceContext(accountInfo);
this.RunWorker(TimeSpan.FromSeconds(30), () =>
{
RoleManager.WriteToLog("Information",
"Checking Link Database");
context.WebLinkDataCollection.
Where((link) =>
(!link.LinkValid) || DateTime.Now –
link.LastVisit >
TimeSpan.FromDays(1)).
ProcessTableData((item) =>
CheckLink(item), context);
return true;
});
}
L’autre schéma commun pour un rôle Worker consiste à récupérer les messages d’une file d’attente et à traiter chacun d’eux. Voici un exemple de code Azure correspondant :
// retrieve messages and write them to the
//development fabric log
while (true)
{
Thread.Sleep(10000);
if (queue.DoesQueueExist())
{
Message msg = queue.GetMessage();
if (msg != null)
{
RoleManager.WriteToLog("Information",
string.Format(
"Message '{0}' processed.",
msg.ContentAsString()));
queue.DeleteMessage(msg);
}
}
}
Téléchargez cette ressource
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
