Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe

Tâches planifiées sous Windows Azure partie II

Poster un commentaire

Voici la deuxième partie de l’article:

https://amethyste16.wordpress.com/2014/06/01/taches-planifiees-sous-windows-azure-partie-i/

Elle sera entièrement consacrée au Scheduler.

 Le Scheduler

Nous aurons besoin d’une application de test. Le plus simple est de créer une application MVC quelconque avec une appel à System.Diagnostics.Trace.  Complétez ensuite le fichier de configuration avec:

<system.diagnostics>
  <trace>
    <listeners>
      <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
    </listeners>
  </trace>
</system.diagnostics>

Cela permettra d’accéder au fichier Trace.axd. Pour en savoir plus:

https://amethyste16.wordpress.com/2014/06/20/diagnostic-des-azure-web-site/

 

 

On va créer notre premier job.

07-06-2014 21-25-56

 

  • On clique sur CREATE ou New en bas du formulaire

07-06-2014 21-31-36

 

Remplissez le formulaire.

  • Faire Next

07-06-2014 21-33-30

L’affichage dépend du choix de l’action. Les options sont Htt et Https d’une part et Storage Queue d’autre part.

Nous allons démontrer les deux possibilités.

Http (https)

  • Commençons par Http (ou https).
  • On saisit l’url de l’application puis Next
  • Ensuite par exemple ceci:

2014-06-22_19-39-35

  • On termine en faisant OK

Laissons aller plusieurs minutes, puis on vérifie que tout s’est bien passé en lançant en ouvrant le fichier Trace.axd.

2014-06-22_19-57-00

On peut aussi regarder le panneau de contrôle de la tâche dans le portail:

2014-06-22_19-50-54

On a la date et l’heure où la tâche s’est exécutée pour la dernière fois.

Cliquons sur la tâche:

2014-06-22_19-54-28

On parvient au panneau de contrôle de la tâche qui à votre disposition.

Action Storage Queue

L’option Storage Queue est bien utile pour un job qui dure assez longtemps ou pour invoquer un service pouvant être offline ou encore pour planifier une tâche sur un worker role.

Il ne semble pas possible d’ajouter de nouvelles tâches dans une collection depuis le portail (en tout cas je n’ai pas trouvé). Il n’est pas non plus possible de modifier le type d’action. On va donc créer une nouvelle collection avec le type d’action storage queue.

  • On clique sur New dans le portail

2014-06-25_22-15-07

 

Puis:

2014-06-25_22-17-47

On peut si on le souhaite ajouter des instruction dans le body. On les récupèrera dans le message de la queue.

  • On fait ensuite Next

2014-06-25_22-21-26

  • Puis OK

Il ne reste plus qu’à attendre plusieurs minutes.

….

Encore un chouia

….

Si nous ouvrons l’historique de la tâche:

2014-06-25_22-27-24

On constate que la tâche a bien été lancée aux heures prévues.

Dans le cas où une des tâches échoue, on peut la sélectionner et cliquer sur View History Details pour avoir des informations.

Le Dashboard donne une vision graphique:

2014-06-25_22-32-25

On peut aussi explorer la queue depuis un explorateur. Par exemple celui-ci gratuit:

http://azurestorageexplorer.codeplex.com/

On lance l’application puis on fait Add Account:

2014-06-25_23-29-00

  • Côté portail on sélectionne le compte utilisé pour créer notre tâche puis on clique sur le menu Manage Access Key:

2014-06-25_23-31-49

  • On clique:

2014-06-25_23-32-54

  • On copie la clef primaire
  • on renseigne le formulaire précédent dans l’explorateur

2014-06-25_23-37-20

On oublie pas de sélectionner le bon storage, ici queue. La liste des storage s’affiche:

2014-06-25_23-38-55

On double clic sur un message pour avoir des informations dessus:

2014-06-25_23-40-17

 Modèle de facturation

Les tâches planifiées (Scheduler ou WebJobs) propose deux modèles de facturation. Un gratuit et un payant. Bien sûr la version payante a des limitations. Si on se rend dans l’onglet SCALE de l’administration des tâches:

2014-06-26_10-32-22

Vous ne disposez gratuitement que de 5 jobs et la granulométrie la plus basse est une exécution à l’heure.

Par contraste les limitations du modèle STANDARD sont:

2014-06-26_10-35-19Cette fois on peut avoir jusqu’à 50 jobs qui peuvent être lancés chaque minute.

Le détail des limites se trouve ici:

http://msdn.microsoft.com/library/azure/dn479786.aspx

 

Différence entre Scheduler et WebJobs

En interne je pense que les WebJobs utilisent le Scheduler. Pas de raisons de faire deux plomberies distinctes pour des choses aussi similaires. D’ailleurs si vous créez une tâche web planifiée (non continue), vous la retrouvez dans la partie Scheduler.

Mais alors du coup quel est l’intérêt d’avoir ces deux mécanismes?

Voici quelques éléments de réponse:

WebJobs

  • Lancement d’un script
  • le Web site doit être lancé pour s’exécuter
  • Tâche limitée à l’environnement Windows Azure
  • Lancement en continue gratuit
  • Lancement à la demande

 

Scheduler

  • appel d’un service.
    Ce service n’est pas obligatoirement dans un environnement Windows Azure
  • peut planifier des tâches vers un service qui n’est pas lancé à un instant donné, via l’Azure Queue
  • Lancement à faible granulométrie (moins d’une heure) payant

 

Note: A l’heure de rédaction de cet article, WebJob est encore en preview. Des choses peuvent donc changer et en particulier au sujet de la tarification.

 

 Bibliographie

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s