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 operazioni in background, aggiunge 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 forniscono forti garanzie sulle tempistiche di esecuzione delle attività ed è quindi non sono adatte per applicazioni interattive in cui l'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 della coda di attività invia richieste di attività ai servizi worker è diverso per le diverse code.

Le code push eseguono attività consegnando richieste HTTP ai servizi worker di App Engine. Inviano queste richieste a un ritmo affidabile e costante e garantiscono un'esecuzione affidabile delle attività. Perché puoi controllare la frequenza con cui le attività vengono inviati dalla coda, puoi controllare le impostazioni comportamento di scalabilità e, di conseguenza, a tuo carico.

Poiché le attività vengono eseguite come richieste indirizzate ad App Engine, e servizi, sono soggetti a scadenze rigorose. Attività gestite dalla gestione dei servizi di scalabilità deve terminare in dieci minuti. Attività gestite da attività di base e manuali possono essere eseguiti per un massimo di 24 ore.

Le code pull non inviano alcuna attività. Dipendono da un altro worker di "leasing" attività della coda di propria iniziativa. Code in modalità pull offrono maggiore potenza e flessibilità su quando e dove le attività vengono elaborate, ma richiedono anche una maggiore gestione dei processi. Quando un'attività viene affittata, il worker in leasing dichiara una scadenza. Quando arriva la scadenza, il lavoratore deve completare ed eliminare l'attività, altrimenti il servizio Coda di attività consentire a un altro worker di concederlo in leasing.

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

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

Casi d'uso

Code in modalità push

Un tipico caso d'uso con coda in modalità push è "lenta" operativa. Prendi in considerazione di messaggistica di rete. Ogni volta che un utente invia un messaggio, la rete deve per aggiornare i follower del mittente. Questa operazione può richiedere molto tempo operativa. Usando una coda in modalità push, l'applicazione può accodare un'attività per ogni quando arriva per essere inviato a un servizio worker per l'elaborazione. Quando il worker riceve la richiesta dell'attività, può recuperare l'elenco i follower e aggiornano il database per ciascuno. Il worker può essere reso ancora più ed 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 implementa una campagna pubblicitaria. Un gruppo di attività scritte per inviare email può essere aggiunta a una coda in modalità push con istruzioni per trattenere le attività fino a quando nel futuro. Quando arriva la data di scadenza, il servizio Coda di attività a inviare richieste per eseguire le attività.

Code in modalità pull

Le code in modalità pull funzionano bene quando devi raggruppare le attività in batch per dell'esecuzione. Una soluzione sfrutta la possibilità di collegare un tag a un dell'attività di pull. I worker possono affittare un gruppo di attività con lo stesso tag. Un tipico un'app che gestisce classifiche di molti giochi diversi, ad esempio molti giocatori e gruppi entrano costantemente in gioco. Ogni volta che c'è un nuovo massimo di punteggio, l'app può accodare un'attività di pull con il punteggio e il giocatore e usare l'ID gioco come tag attività. Un lavoratore si "risveglia" periodicamente e affitta un gruppo di con lo stesso ID gioco e aggiorna la classifica. Puoi noleggiare attività in modo esplicito, utilizzando un valore di tag specificato, oppure lascia che sia il servizio a decidere quale gruppo di attività con tag simili da inviare.

Il raggruppamento in batch di tag può essere molto efficace. Poiché i tag possono essere dinamicamente generati mentre l'app è in esecuzione, un worker può gestire nuovi ID gioco senza sforzo speciale.

Passaggi successivi