Introduzione ai WebJob di Windows Azure

di Cristian Civera, in Windows Azure,

Sono ormai parecchi anni che la piattaforma Windows Azure è stata lanciata, e Microsoft ci ha abituati a frequenti rilasci che aggiornano o arricchiscono i servizi messi a disposizione dalla piattaforma. Di recente è stata aggiunta in preview una nuova funzionalità, di nome WebJob, che va a colmare un'esigenza sentita soprattutto da chi ha semplici necessità e non vuole utilizzare un Cloud Service. I WebJob, infatti, si inseriscono come funzionalità aggiuntiva dei WebSite e quindi li ritroviamo già disponibili all'interno dei siti che già stiamo utilizzando. Essi risolvono il limite (in realtà apparente) dei WebSite, che in quanto tali, sono progettati per eseguire pagine internet e singole richieste e non sono adatti per eseguire compiti longevi o attività sulla base di specifici input. Spesso, infatti, si sfruttano i WebSite anche per eseguire operazioni, schedulate e non, all'interno dell'ambiente di hosting che, essendo basato su IIS, non è l'ideale per questo genere di operazioni. In qualsiasi momento a causa del riciclo programmato, per cambiamenti nella configurazione o per limite della memoria, il processo in cui vive l'applicazione potrebbe essere riavviato, interrompendo qualsiasi operazione stiamo eseguendo. Questo in genere non è un problema per le richieste web, poiché vengono soddisfatte in intervalli brevissimi, ma lo è per le nostre attività parallele. Inviare una newsletter, generare un PDF, ridimensionare delle immagini, gestire un ordine, sono alcuni esempi di attività che sarebbe opportuno non eseguire direttamente su richiesta dall'utente, fondamentalmente per due ragioni:

  • Per non avere problemi in caso di interruzione dell'ambiente di hosting, ritrovandoci con attività svolte a metà;
  • Per scalare maggiormente, quindi senza che queste attività rallentino necessariamente le richieste degli utenti;

I WebJob sono quindi l'ideale per questo genere di attività. Per certi versi molto simili ai WorkerRole dei Cloud Services, si distinguono dal fatto che sono pensati per essere più semplici da implementare e adatti a esigenze più contenute. In particolar modo, possono essere sviluppati in .NET, ma anche in JavaScript, PowerShell, PHP, Python, Bash e Windows command.

Creazione di un WebJob in .NET

In questo articolo vediamo come possiamo sviluppare un WebJob in .NET, ma molti dei concetti e delle informazioni che daremo sono valide anche per gli altri linguaggi. Se usiamo .NET, ciò che dobbiamo produrre è un console application, quindi un file exe, che verrà poi eseguito all'interno delle macchine virtuali di Windows Azure il quale ha il compito di monitorare gli storage per innescare un'attività da eseguire. I WebJob, quindi, si attivano perché da un WebSite (o da qualsiasi altro codice) inseriamo un file, un messaggio o un record all'interno dei blob, queue o table di Windows Azure. Il nostro compito è scrivere solo la parte di codice che vogliamo eseguire a fronte di uno di questi eventi e in autonomia il sistema gestisce gli elementi già processati e gli eventuali errori.

Per sviluppare un WebJob in .NET dobbiamo prima di tutto creare una nuova console application, in versione 4.5.

Sfruttiamo poi NuGet per referenziare l'SDK messo a disposizione per facilitarci la creazione di un WebJob. Il suo id è Microsoft.WindowsAzure.Jobs.Host e attualmente è in fase beta, perciò lanciamo il seguente comando dalla console di NuGet:

Install-Package Microsoft.WindowsAzure.Jobs.Host -pre
5 pagine in totale: 1 2 3 4 5
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Top Ten Articoli

Articoli via e-mail

Iscriviti alla nostra newsletter nuoviarticoli per ricevere via e-mail le notifiche!

In primo piano

I più letti di oggi

In evidenza

Misc