Panoramica delle code di attività

Questa pagina descrive cosa sono le code di attività, quando e come utilizzarle. Le code di attività consentono alle applicazioni di eseguire operazioni, chiamate attività, in modo asincrono al di fuori della richiesta di un utente. Se un'app deve eseguire il lavoro in background, aggiunge le attività alle code di attività. Le attività vengono eseguite in un secondo momento dai servizi worker.

Il servizio Coda di attività è progettato per il lavoro asincrono. Non offre solide garanzie sulle tempistiche di distribuzione delle attività ed è pertanto non adatto alle applicazioni interattive in cui un utente è in attesa del risultato.

Code in modalità push e code in modalità pull

Le code di attività sono disponibili in due versioni: push e pull. Il modo in cui il servizio Coda attività invia le richieste di attività ai servizi worker è diverso a seconda delle diverse code.

Le code push eseguono attività consegnando richieste HTTP ai servizi worker di App Engine. Inviano queste richieste a una velocità affidabile e costante e garantiscono un'esecuzione affidabile delle attività. Poiché puoi controllare la frequenza con cui le attività vengono inviate dalla coda, puoi controllare il comportamento di scalabilità dei worker e, di conseguenza, i tuoi costi.

Poiché le attività vengono eseguite come richieste mirate ai servizi App Engine, sono soggette a scadenze rigorose. Le attività gestite dai servizi di scalabilità automatica devono terminare in dieci minuti. Le attività gestite dai servizi di scalabilità di base e manuali possono essere eseguite per un massimo di 24 ore.

Le code pull Non inviano alcuna attività. Dipendono da altri servizi worker per "assumere" le attività dalla coda di propria iniziativa. Le code in modalità pull offrono maggiore potenza e flessibilità su quando e dove vengono elaborate le attività, ma richiedono anche una maggiore gestione dei processi. Quando un'attività viene in leasing, il worker in leasing dichiara una scadenza. Al momento della scadenza, il worker deve completare l'attività ed eliminarla oppure il servizio coda di attività consentirà a un altro worker di prenderla in leasing.

Tutte le attività coda di attività vengono eseguite in modo asincrono. L'applicazione che crea l'attività la passa alla coda. All'applicazione di origine non viene comunicato se l'attività è stata completata o se è riuscita.

Se un worker non riesce a elaborare un'attività, il servizio Coda di attività fornisce alla coda un meccanismo di nuovo tentativo, in modo che l'attività possa essere ripetuta per un numero limitato di volte.

Casi d'uso

Code in modalità push

Un caso d'uso tipico delle coda in modalità push è un'operazione "lenta". Prendi in considerazione un sistema di messaggistica sui social network. Ogni volta che un utente invia un messaggio, la rete deve aggiornare i follower del mittente. Questa operazione può richiedere molto tempo. Utilizzando una coda in modalità push, l'applicazione può accodare un'attività per ogni messaggio quando arriva per essere inviato a un servizio worker per l'elaborazione. Quando il worker riceve la richiesta dell'attività, può recuperare l'elenco dei follower del mittente e aggiornare il DB per ciascuno. Il worker può essere reso ancora più efficiente accodando un'altra attività di push per ogni aggiornamento del database.

Le code in modalità push sono inoltre utilizzate per la pianificazione delle attività. Immagina un'applicazione che implementa una campagna pubblicitaria. Un gruppo di attività scritte per inviare email può essere aggiunto a una coda in modalità push con istruzioni per trattenere le attività fino a un momento specifico nel futuro. Quando arriva la data di scadenza, il servizio Coda di attività inizia a emettere richieste per l'esecuzione delle attività.

Passaggi successivi