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 le attività. La coda risponde consentendo all'accesso univoco del worker di elaborare l'attività per un periodo di tempo specificato, chiamato lease.

L'applicazione trasferisce l'attività al servizio della coda di attività, quindi il worker la lease
dal servizio delle code di attività

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:

  1. Per creare una coda in modalità pull, utilizza queue.yaml.
  2. Puoi creare le attività e aggiungerle alla coda.
  3. Il worker che hai creato prende in prestito 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'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.
  6. Una volta elaborata correttamente, un'attività viene eliminata dal lavoratore.

Passaggi successivi