Questa pagina fornisce una panoramica delle code in modalità pull nell'App Engine nell'ambiente standard.
Nelle code push le attività vengono consegnate a un servizio worker in base alla configurazione della coda. Nelle code pull il servizio worker deve chiedere e mettere in coda le attività. La coda risponde concedendo al worker l'accesso unico. per elaborare l'attività per un periodo di tempo specificato, chiamato lease.
Con le code in modalità pull, puoi anche raggruppare le attività correlate utilizzando i tag e quindi configurare per eseguire il pull di più attività con un determinato tag contemporaneamente. Questo processo è chiamato batching.
Se un worker non è in grado di elaborare un'attività prima della scadenza del suo lease, può rinnovare o lasciarla scadere, dopodiché un altro worker potrà acquisirlo. Una volta completato il lavoro associato a un'attività, l'operatore deve eliminarla.
L'utilizzo delle code pull richiede che il codice gestisca alcune funzioni automatiche nelle code push:
- Scalabilità dei worker
- Il tuo codice deve scalare il numero di worker in base a di elaborazione. Se il tuo codice non gestisce la scalabilità, rischi sprecare risorse di calcolo se non ci sono attività da elaborare; rischi anche di correre se hai troppe attività da elaborare.
- Eliminazione delle attività
- Il tuo codice deve anche eliminare esplicitamente le attività dopo l'elaborazione. Nelle code push, App Engine elimina le attività per te. Se il tuo lavoratore non eliminerà le attività della coda in modalità pull dopo l'elaborazione, verrà rielaborato da un altro worker l'attività. Questo spreca risorse di elaborazione e rischia errori se le attività vengono non idempotente.
Le code pull nell'ambiente standard di App Engine vengono create impostando una proprietà in un
file di configurazione denominato
.queue.yaml
Flusso di lavoro della coda in modalità pull
I worker che elaborano le attività dalle code in modalità pull devono essere definiti all'interno di un servizio eseguito nell'ambiente standard di App Engine.
Il flusso di lavoro è il seguente:
- Puoi creare una coda in modalità pull utilizzando
.queue.yaml
- Puoi creare attività e aggiungerle alla coda.
- Il worker che hai creato noleggia l'attività utilizzando TaskQueue.
- App Engine invia i dati delle attività al worker nella risposta al lease.
- Il worker elabora l'attività. Se l'attività non viene eseguita prima della scadenza del contratto di locazione, il collaboratore può modificarne la durata. Se il lease scade, l'attività sarà disponibile per essere affittata a un altro worker.
- Dopo che un'attività è stata elaborata correttamente, il worker la elimina.
Passaggi successivi
- Scopri come creare code pull.