Utilizzo delle code in modalità pull in Python 2

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 di eseguire attività. La coda risponde consentendo al worker di accedere in modo univoco all'elaborazione dell'attività per un periodo di tempo specificato, chiamato lease.

L'applicazione scarica l'attività al servizio di coda delle attività e quindi il worker lo noleggia
dal servizio di coda delle attività.

Utilizzando le code in modalità pull, puoi anche raggruppare le attività correlate utilizzando i tag e poi configurare il tuo worker in modo che possa eseguire più attività con un determinato tag in una sola volta. Questo processo è noto come batch.

Se un worker non può elaborare un'attività prima della scadenza del lease, può rinnovarla o lasciarla scadere, dopodiché un altro worker potrà acquisirla. Una volta completato il lavoro associato a un'attività, il worker deve eliminarla.

L'utilizzo delle code in modalità pull richiede che il tuo codice gestisca alcune funzioni automatizzate nelle code in modalità push:

Scalabilità dei worker
Il codice deve scalare il numero di worker in base al volume di elaborazione. Se il tuo codice non è in grado di gestire la scalabilità, rischi di sprecare risorse di calcolo in assenza di attività da elaborare. In caso contrario, rischi di latenza. Se hai troppe attività da elaborare.
Eliminazione delle attività
Il codice deve anche eliminare esplicitamente le attività dopo l'elaborazione. Nelle code in modalità push, App Engine elimina le attività per tuo conto. Se il worker non elimina le attività in coda in fase di elaborazione dopo l'elaborazione, un altro worker eseguirà nuovamente l'attività. Ciò spreca risorse di computing e rischia errori se le attività non sono idonee.

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 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:

  1. Per creare una coda di pull, utilizza queue.yaml.
  2. Puoi creare attività e aggiungerle alla coda.
  3. Il worker che hai creato offre l'attività, utilizzando TaskQueue.
  4. App Engine invia i dati dell'attività al worker nella risposta di lease.
  5. Il worker elabora l'attività. Se l'esecuzione dell'attività non riesce prima della scadenza del lease, il worker può modificare la durata del lease. Se il lease scade, l'attività sarà disponibile per il noleggio a un altro worker.
  6. Dopo che un'attività è stata elaborata correttamente, il worker la elimina.

Passaggi successivi