Questa pagina fornisce una panoramica delle code in modalità pull nell'ambiente standard di App Engine.
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 alla coda le attività. La coda risponde consentendo all'accesso univoco del worker di elaborare l'attività per un periodo di tempo specificato, chiamato lease.
Utilizzando le code in modalità pull, puoi anche raggruppare le attività correlate utilizzando i tag e quindi configurare il worker in modo che esegua il pull di più attività con un determinato tag contemporaneamente. Questo processo è chiamato batch.
Se un worker non può elaborare un'attività prima della scadenza del lease, può rinnovare il lease o lasciarla scadere, dopodiché un altro worker può acquisirla. Una volta completato il lavoro associato a un'attività, il worker deve eliminarlo.
L'uso delle code in modalità pull richiede che il codice gestisca alcune funzioni automatizzate nelle code in modalità push:
- Scalabilità dei worker
- Il tuo codice deve scalare il numero di worker in base al volume di elaborazione. Se il codice non gestisce la scalabilità, rischi di sprecare risorse di calcolo se non ci sono attività da elaborare. Inoltre, se hai troppe attività da elaborare, rischi la latenza.
- Eliminazione delle attività
- Il codice deve inoltre eliminare esplicitamente le attività dopo l'elaborazione. Nelle code in modalità push, App Engine elimina le attività automaticamente. Se il worker non elimina le attività delle coda in modalità pull dopo l'elaborazione, un altro worker la rielabora. Questo spreca risorse di calcolo e rischia errori se le attività non sono idempotenti.
Le code in modalità pull nell'ambiente standard di App Engine vengono create impostando una proprietà in un
file di configurazione denominato
.queue.yaml
Flusso di lavoro delle code 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:
- Per creare una coda in modalità pull, utilizza
.queue.yaml
- Puoi creare le attività e aggiungerle alla coda.
- Il worker che hai creato prende in prestito l'attività utilizzando TaskQueue.
- App Engine invia i dati dell'attività al worker nella risposta di lease.
- Il worker elabora l'attività. Se l'attività non viene eseguita prima della scadenza del lease, il worker può modificare la durata del lease. Se il contratto scade, l'attività potrà essere affittata a un altro lavoratore.
- Una volta elaborata correttamente, un'attività viene eliminata dal lavoratore.
Passaggi successivi
- Scopri come creare code in modalità pull.