Questa pagina descrive che 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 operazioni 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 forti garanzie in merito ai tempi di esecuzione delle attività ed è quindi inadatto per le applicazioni interattive in cui un utente è in attesa del risultato.
Code push e code pull
Le code di attività sono disponibili in due versioni: push e pull. Il modo in cui il servizio Task Queue invia le richieste di attività ai servizi di worker è diverso per le varie code.
Le code push eseguono le attività inviando richieste HTTP ai servizi worker App Engine. Inviano queste richieste a 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 quindi 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 essere completate 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 attività. Dipendono da altri servizi worker per "noleggiare" le attività dalla coda di propria iniziativa. Le code pull ti 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 concessa in leasing, il lavoratore che la concede dichiara una scadenza. Entro la scadenza, l'operatore deve completare l'attività ed eliminarla oppure il servizio Task Queue consentirà a un altro operatore di acquisirla in leasing.
Tutte le attività della coda di attività vengono eseguite in modo asincrono. L'applicazione che crea la consegna all'attività alla coda. L'applicazione di origine non viene informata se l'attività è stata completata o meno o se è andata a buon fine.
Se un worker non riesce a elaborare un'attività, il servizio Task Queue fornisce alla coda un meccanismo di ripetizione, in modo che l'attività possa essere ripetuta un numero finito di volte.
Casi d'uso
Code in modalità push
Un caso d'uso tipico della coda in modalità push è un'operazione "lenta". Prendiamo in considerazione un sistema di messaggistica di un social network. Ogni volta che un utente invia un messaggio, la rete deve aggiornare i follower del mittente. Questa può essere un'operazione molto laboriosa. Utilizzando una coda in modalità push, l'applicazione può mettere in coda un'attività per ogni messaggio all'arrivo per l'invio a un servizio di lavoro per l'elaborazione. Quando il worker riceve la richiesta di attività, può recuperare l'elenco dei follower del mittente e aggiornare il DB per ciascuno. Il worker può essere reso ancora più efficiente inserendo in coda un'altra attività push per ogni aggiornamento del database.
Un altro utilizzo delle code push è per le attività pianificate. Immagina un'applicazione che implementa una campagna pubblicitaria. Un gruppo di attività scritte per l'invio di email può essere aggiunto a una coda in modalità push con istruzioni per trattenere le attività fino a un momento futuro specificato. Quando arriva la data di scadenza, il servizio Task Queue inizierà a emettere richieste per l'esecuzione delle attività.
Passaggi successivi
- Scopri di più sulle code push