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
Ajouter les dépendances vers le projet

Ajouter le « Settings.job »
Permet de définir le cron de déclenchement

{
"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

<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
Créer le constructeur de la classe et importer le service de loader à utiliser par le job

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

S’assurer que ce service ciblé dans l’api soit public
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.

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.

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

Exemple de configuration ajouté pour ce projet :

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

Choisir une publication Azure

Choisir la cible « Azure Webjobs »

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

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 »
