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
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- On ne peut pas gouverner ce qu’on ne peut pas voir : pourquoi la visibilité doit-elle passer avant la gouvernance en matière de sécurité des identités ?
- L’IA amplifie les risques sur les API
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Nomios accélère sur la cybersécurité industrielle avec un SOC renforcé et une Factory OT immersive
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
