Skip to main content

Document technique à la gestion des webjobs de Azure par l’application Courrier du CAM

Référence de document : Nom de fichier : Creation-web-jobs.docx

Objet : Support de création de webjob Azure

Vue d’ensemble

https://learn.microsoft.com/en-us/azure/app-service/webjobs-sdk-get-started

Créer un webjob

Création de l’assembly

L’assembly doit être créé dans le projet image.pngimage.png

Ajouter les dépendances vers le projet

image.png image.png image.png

Ajouter le « Settings.job »

Permet de définir le cron de déclenchement image.png

{
"schedule": "0 0 20 * * *"
}

Avec ce cron, le déclenchement se fera toutes les heures à ?? (L’heure à identifier et celle du japon où tourne le job) Ajouter la config du job image.png

<ItemGroup>
<None Update="Settings.job">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>

Créer le job service

Créer la classe du job service

Créer une nouvelle classe image.png

Créer le constructeur de la classe et importer le service de loader à utiliser par le job image.png

Ajouter dans la classe « PowerBiJobService » la methode « LoadAsync » qui sera exécuté au démarrage du job et qui appelle la méthode de l’api souhaité pour l’exécution du job image.png

S’assurer que ce service ciblé dans l’api soit public image.png

Configurer le service provider

Ajouter la configuration de base

Ajouter la configuration au fournisseur de service pour pouvoir fournir le service de l’api et démarrer sur le service du job au démarrage. image.png

Ajouter la configuration de dépendance

Tous les services fournit lors du passage dans le constructeur du service coté api devront également être dans le fournisseur de service de projet job, car c’est ce dernier qui instancie le service de l’api.

Dans notre cas tous ces services devront être ajoutés. image.png

Autrement lors du debug nous aurons ce genre d’erreur. image.png

Exemple de configuration ajouté pour ce projet : image.png

Déployer le webjob

https://learn.microsoft.com/en-us/azure/app-service/webjobs-dotnet-deploy-vs Sur le projet sélectionner « publish » image.png

Choisir une publication Azure image.png

Choisir la cible « Azure Webjobs » image.png

Sélectionner l’api cible où rattacher le webjob image.png image.png

Sur Azure portal nous pouvons observer que le job a été ajouté et qu’il est bien configuré sur un déclenchement automatique par « Schedule » image.png