Eseguire attività in background con Processi Web in Servizio app di Azure

Nota

I processi Web per il contenitore Windows, il codice Linux e il contenitore Linux sono in anteprima. I processi Web per il codice di Windows sono disponibili a livello generale e non in anteprima.

Distribuire processi Web usando il portale di Azure per caricare un eseguibile o uno script. È possibile eseguire attività in background nel servizio app Azure.

Se invece del servizio app Azure si usa Visual Studio per sviluppare e distribuire processi Web, vedere Distribuire processi Web con Visual Studio.

Panoramica

Processi Web è una funzionalità di app Azure Servizio che consente di eseguire un programma o uno script nella stessa istanza di un'app Web. Non sono previsti costi aggiuntivi per l'uso di processi Web.

È possibile usare Azure WebJobs SDK con Processi Web per semplificare molte attività di programmazione. Per altre informazioni, vedere Che cos'è l'SDK Processi Web?.

Funzioni di Azure consente di eseguire programmi e script in un altro modo. Per un confronto tra Processi Web e Funzioni, vedere Scegliere tra Flow, App per la logica, Funzioni e Processi Web.

Tipi di processi Web

Tipi di file supportati per script e programmi

I seguenti tipi di file non sono supportati:
.cmd, .bat, .exe (con Windows cmd)
.ps1 (uso di PowerShell)
.sh (con Bash)
.php (con PHP)
.py (con Python)
.js (con Node.js)
.jar (con Java)

I runtime necessari per eseguire questi tipi di file sono già installati nell'istanza dell'app Web.

Processi Web continui e attivati

La tabella seguente descrive le differenze tra processi Web continui e attivati :

Continuo Attivato
Viene avviato immediatamente quando il processo Web viene creato. Per evitare che il processo termini, il programma o lo script in genere opera in un ciclo infinito. Se il processo termina, è possibile riavviarlo. In genere usato con WebJobs SDK. Viene avviato solo se attivato manualmente o in base a una pianificazione.
Viene eseguito in tutte le istanze in cui viene eseguita l'app Web. È facoltativamente possibile limitare il processo Web a una sola istanza. Viene eseguito in una singola istanza selezionata da Azure per il bilanciamento del carico.
Supporta il debug remoto. Non supporta il debug remoto.
Il codice viene distribuito in \site\wwwroot\app_data\Jobs\Continuous. Il codice viene distribuito in \site\wwwroot\app_data\Jobs\Triggered.

Nota

Un'app Web può scadere dopo 20 minuti di inattività e solo le richieste all'app Web effettiva possono reimpostare il timer. Se si visualizza la configurazione dell'app nel portale di Azure o si effettuano richieste al sito degli strumenti avanzati (https://<app_name>.scm.azurewebsites.net), il timer non verrà reimpostato. Se si imposta l'app Web che ospita il processo per l'esecuzione continua, l'esecuzione in base a una pianificazione o l'uso di trigger basati su eventi, abilitare l'impostazione Always On nella pagina Configurazione di Azure dell'app Web. L'impostazione Always On consente di assicurarsi che questi tipi di processi Web vengano eseguiti in modo affidabile. Questa funzionalità è disponibile solo nei piani tariffari Basic, Standard e Premium.

Creare un processo Web continuo

Importante

Dopo aver configurato il controllo del codice sorgente per l'applicazione, i processi Web devono essere distribuiti come parte dell'integrazione del controllo del codice sorgente. Dopo aver configurato il controllo del codice sorgente per l'applicazione, non è possibile aggiungere un processo Web dal portale di Azure.

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app servizio app nel portale.

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Crea processo Web.

    Screenshot che mostra come configurare un processo Web continuo a istanza con più istanze per un'app servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myContinuousWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non deve contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp.zip File .zip che contiene il file eseguibile o script e tutti i file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Continuo I tipi di processi Web sono descritti più indietro in questo articolo.
    Ridimensiona Istanza multipla Disponibile solo per i processi Web continui. Determina se il programma o lo script viene eseguito in tutte le istanze o in un'istanza. L'opzione per l'esecuzione in più istanze non si applica ai piani tariffari Gratuito o Condiviso.
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Per arrestare o riavviare un processo Web continuo, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Arresta o Esegui , quindi confermare la selezione.

    Screenshot che mostra come arrestare un processo Web continuo nel portale di Azure.

Creare un processo Web attivato manualmente

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app servizio app nel portale (attivato manualmente webjob).

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Crea processo Web.

    Screenshot che mostra come configurare un processo Web attivato manualmente per un'app servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myTriggeredWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non deve contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp1.zip File .zip che contiene il file eseguibile o script e tutti i file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Attivato I tipi di processo Web sono descritti in precedenza in questo articolo.
    Trigger Manuale
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Per eseguire un processo Web attivato manualmente, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Esegui, quindi confermare la selezione.

    Screenshot che mostra come eseguire un processo Web attivato manualmente nella portale di Azure.

Creare un processo Web pianificato

Viene attivato anche un processo Web pianificato. È possibile pianificare l'esecuzione automatica del trigger in base alla pianificazione specificata.

  1. Nel portale di Azure andare alla pagina Servizio app dell'app Web del servizio app, dell'app per le API o dell'app per dispositivi mobili.

  2. Nel riquadro sinistro selezionare Processi Web, quindi selezionare Aggiungi.

    Screenshot che mostra come aggiungere un processo Web in un'app servizio app nel portale (processo Web pianificato).

  3. Compilare le impostazioni Aggiungi processo Web come specificato nella tabella e quindi selezionare Crea processo Web.

    Screenshot che mostra come configurare un processo Web pianificato in un'app servizio app.

    Impostazione Valore di esempio Descrizione
    Nome myScheduledWebJob Nome univoco nell'app del servizio app. Deve iniziare con una lettera o un numero e non deve contenere caratteri speciali diversi da "-" e "_".
    Caricamento file ConsoleApp.zip File .zip che contiene il file eseguibile o script e tutti i file di supporto necessari per eseguire il programma o lo script. I tipi di file di script o eseguibili supportati sono elencati nella sezione Tipi di file supportati.
    Type Attivato I tipi di processi Web sono descritti più indietro in questo articolo.
    Trigger Pianificati Per il corretto funzionamento della pianificazione, abilitare la funzionalità Sempre online. Sempre online è disponibile solo nei piani tariffari Basic, Standard e Premium.
    Espressione CRON 0 0/20 * * * * Le espressioni CRON vengono descritte nella sezione seguente.
  4. Il nuovo processo Web viene visualizzato nella pagina Processi Web. Se viene visualizzato un messaggio che indica che il processo Web è stato aggiunto, ma non viene visualizzato, selezionare Aggiorna.

  5. Il processo Web pianificato viene eseguito alla pianificazione definita dall'espressione CRON. Per eseguirlo manualmente in qualsiasi momento, fare clic con il pulsante destro del mouse sul processo Web nell'elenco e selezionare il pulsante Esegui, quindi confermare la selezione.

    Screenshot che mostra come eseguire un processo Web pianificato manualmente nella portale di Azure.

Espressioni NCRONTAB

È possibile immettere un'espressione NCRONTAB nel portale o includere un settings.job file nella radice del file del processo Web .zip, come nell'esempio seguente:

{
    "schedule": "0 */15 * * * *"
}

Per altre informazioni, vedere Pianificazione di un processo Web attivato.

Nota

Il fuso orario predefinito usato per eseguire le espressioni CRON è UTC (Coordinated Universal Time). Per fare in modo che l'espressione CRON eseguita sia basata su un altro fuso orario, creare un'impostazione per l'app per le funzioni denominata WEBSITE_TIME_ZONE. Per altre informazioni, vedere Fusi orari NCRONTAB.

Gestire processi Web

È possibile gestire i singoli processi Web in esecuzione in esecuzione nel sito nel portale di Azure. Passare a Impostazioni> WebJobs, scegliere il processo Web ed è possibile avviare e arrestare il processo Web. È anche possibile visualizzare e modificare la password del webhook che esegue il processo Web.

È anche possibile aggiungere un'impostazione dell'applicazione denominataWEBJOBS_STOPPED con il valore per 1 arrestare tutti i processi Web in esecuzione nel sito. È possibile usare questo metodo per impedire l'esecuzione di processi Web in conflitto sia negli slot di staging che in quello di produzione. È possibile usare in modo analogo un valore di 1 per l'impostazione WEBJOBS_DISABLE_SCHEDULE per disabilitare i processi Web attivati nel sito o in uno slot di staging. Per gli slot, ricordarsi di abilitare l'opzione Impostazione slot di distribuzione in modo che l'impostazione stessa non venga scambiata.

Visualizzare la cronologia processo

  1. Per il processo Web che si vuole visualizzare, selezionare Log.

    Screenshot che mostra come accedere ai log per un processo Web.

  2. Nella pagina WebJob Details (Dettagli processo Web) selezionare un'ora per visualizzare i dettagli di un'esecuzione.

    Screenshot che mostra come scegliere un'esecuzione di processo Web per visualizzare i log dettagliati.

  3. Nella pagina WebJob Run Details (Dettagli esecuzione processo Web) è possibile selezionare download per ottenere un file di testo dei log oppure selezionare il collegamento di navigazione Processi Web nella parte superiore della pagina per visualizzare i log per un processo Web diverso.

Stati dei processi Web

Di seguito è riportato un elenco degli stati comuni dei processi Web:

  • Inizializzazione Dell'app è stata avviata e il processo Web sta eseguendo il processo di inizializzazione.
  • Avvio del processo Web.
  • Esecuzione del processo Web in esecuzione.
  • PendingRestart Un processo Web continuo viene chiuso in meno di due minuti dall'avvio per qualsiasi motivo e servizio app attende 60 secondi prima di riavviare il processo Web. Se il processo Web continuo viene chiuso dopo il contrassegno di due minuti, servizio app non attende 60 secondi e riavvia immediatamente il processo Web.
  • Arrestato Il processo Web è stato arrestato (in genere dal portale di Azure) e attualmente non è in esecuzione e non verrà eseguito finché non si avvia di nuovo manualmente, anche per un processo Web continuo o pianificato.
  • Interrotto Questo problema può verificarsi per molti motivi, ad esempio quando un processo Web a esecuzione prolungata raggiunge il marcatore di timeout.

Passaggi successivi

Azure WebJobs SDK può essere usato con Processi Web per semplificare diverse attività di programmazione. Per altre informazioni, vedere Che cos'è l'SDK Processi Web?.