Aujourd’hui partons à la découverte des Web Jobs de la plateforme Azure. Kezako? Traditionnellement, lorsque vous avez besoin de mettre en place des taches de fond dans vos architectures azure, vous développez des scripts C# que vous exécutez dans un worker rôle . Dans un Site Web, on peut également avoir besoin d’exécuter des taches de fond, pour créer des flux RSS par exemple, ou recalculer des statistiques de navigation. Les Web Jobs sont la pour nous faciliter la vie dans la création de taches de fond ou l’exécution de scripts. Leur atouts est de grandement simplifier l’expérience du développeur. Le premier support des Web Jobs se situe au niveau des Web Sites, ou vous avez la possibilité d’uploader des scripts de différents types :
- cmd, .bat, .exe
- .sh
- .php (avec l’utilisation de Php)
- .py (avec l’utilisation de Python)
- .js (avec l’utilisation de Nodejs)
- powershell (depuis peu, fin janvier, mais auparavant, un MSFT avait publié un article sur le sujet : http://blogs.msdn.com/b/nicktrog/archive/2014/01/22/running-powershell-web-jobs-on-azure-websites.aspx)
Ses scripts peuvent ensuite être déclenchés de 3 manières différents :
- A la demande : vous vous rendez sur le site et vous cliquer sur le bouton pour déclencher l’exécution du scripts
- en continue : très intéressant, si votre tache de fond tombe en erreur et s’arrète (une erreur non catché par exemple) , elle sera automatiquement redémarrée.
- sur la base d’une planification : pour ce cas ci, vous aurez besoin d’un service scheduler dans votre souscription.
Attention toutefois à l’architecture des Sites Web. On y pense moins que pour les Cloud Services, mais il existe également une élasticité de votre site web en utilisant plusieurs instances, dans le cas d’un Web Jobs en exécution continue, si votre site web contient plusieurs instance, alors le script sera exécuté en parallèle sur les N instances. Veillez donc à ne pas avoir de problème de concurrence dans vos traitements. Pour superviser tout cela, une nouvelle interface fait son apparition : Cette interface vous permet de superviser toutes l’éxécution de vos job :
- quand
- comment
- quel sont les paramètres d’entrée et les résultats
Toutes ses informations sont stockées dans les Tables Storage Azure : Nous verrons à travers plusieurs billets comment utiliser ses Web Jobs, au sein d’un Azure Web Site ou bien en stand alone dans un rôle azure. (Je mettrais cette section à jour avec les liens vers chaque billet)
- Créer son premier azure web job
- Activer un job à partir d’une queue
- Activer un job à partir d’un blob et créer un nouveau blob
- Ecrire dans les tables Azure Storages à partir d’un job
- La planification des Web Jobs
voici également des liens utiles pour tout avoir les dernières informations, blogs, samples autour des Web Jobs :
- Introduction par Scott Hanselman : http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx
- Turorial sur les Web Jobs : http://www.windowsazure.com/en-us/documentation/articles/web-sites-create-web-jobs/
- Regroupement de lien : http://curah.microsoft.com/52143/using-the-webjobs-feature-of-windows-azure-web-sites