Utilizzo delle code in modalità pull in Python 2

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.

L'applicazione trasferisce l'attività al servizio di coda di attività e poi il worker esegue il lease
dal servizio di coda di attività

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 il lavoro associato a un'attività è completato, 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 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 in modalità 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 calcolo e rischia di commettere errori se le attività vengono non idempotente.

Nell'ambiente standard di App Engine, le code in modalità pull vengono create impostando una proprietà in un di configurazione predefinito 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. Puoi creare una coda in modalità pull utilizzando queue.yaml.
  2. Puoi creare attività e aggiungerle alla coda.
  3. Il worker che hai creato prende in leasing l'attività, utilizzando TaskQueue.
  4. App Engine invia i dati delle attività al worker nella risposta al lease.
  5. Il worker elabora l'attività. Se l'attività non viene eseguita prima del leasing scade, il worker può modificarne la durata. Se il lease scade, l'attività sarà disponibile per essere affittata a un altro worker.
  6. Dopo che un'attività è stata elaborata correttamente, il worker la elimina.

Passaggi successivi