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
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- L’incident OpenAI–Hugging Face n’est pas la révolution que vous imaginez
- Pourquoi les PME ne peuvent plus se permettre de négliger la sécurité de leur parc d’imprimantes
- Ransomware : les identités compromises à l’origine de 79% des attaques
- Deepfakes : la France dans le top 10 des pays les plus touchés par les fraudes
Articles les + lus
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
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- 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
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
