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 di una richiesta dell'utente. Se un'app deve eseguire il lavoro in background, aggiunge attività alle code di attività. Le attività vengono eseguite in un secondo momento, dai servizi worker.

Il servizio Task Queue è progettato per il lavoro asincrono. Non fornisce garanzie solide sui tempi di consegna delle attività e, di conseguenza, non è adatta per le applicazioni interattive in cui un utente attende il risultato.

Code in modalità push e code in modalità pull

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

Il push delle code esegue attività distribuendo richieste HTTP ai servizi worker App Engine. Inviano queste richieste con una frequenza costante e affidabile 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 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 entro dieci minuti. Le attività gestite dai servizi di scalabilità di base e manuale possono essere eseguite fino a 24 ore.

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

Tutte le attività relative alle coda di attività vengono eseguite in modo asincrono. L'applicazione che crea l'attività la passa alla coda. L'applicazione di origine non riceve alcuna notifica se l'attività è stata completata o meno o se è riuscita.

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

Casi d'uso

Code in modalità push

Un tipico caso d'uso delle code in coda in modalità push è un'operazione "lenta". Prendiamo 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ò essere un'operazione dispendiosa in termini di tempo. Utilizzando una coda in modalità push, l'applicazione può accodare un'attività per ogni messaggio man mano che 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 database di ciascuno. Il worker può essere reso ancora più efficiente accodando un'altra attività push per ogni aggiornamento del database.

Le code in modalità push sono utilizzabili anche dalle attività pianificate. 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. All'arrivo della data di scadenza, il servizio coda di attività inizia a inviare richieste per l'esecuzione delle attività.

Passaggi successivi