Questa pagina mostra come creare un gestore attività di App Engine, il codice worker che gestisce un'attività di App Engine. La coda Cloud Tasks invia richieste HTTP al tuo gestore attività. Al termine dell'elaborazione, il gestore deve inviare nuovamente un codice di stato HTTP tra 200
e 299
. Qualsiasi altro valore indica che l'attività non è riuscita e la coda tenta di nuovo l'attività.
Le richieste di coda di attività di App Engine vengono inviate dall'indirizzo IP 0.1.0.2
.
Fai riferimento anche all'intervallo IP per le richieste inviate all'ambiente App Engine.
C#
Python
Java
PHP
Go
Node.js
Ruby
Timeout
Le attività di App Engine hanno timeout specifici che dipendono dal tipo di scalabilità del servizio che le esegue.
Per i servizi worker in esecuzione nell'ambiente standard:
- Scalabilità automatica: l'elaborazione delle attività deve terminare tra dieci minuti.
- Scalabilità manuale e di base: le richieste possono essere eseguite fino a 24 ore.
Per i servizi worker in esecuzione nell'ambiente flessibile: tutti i tipi hanno un timeout di 60 minuti.
Se il gestore non rispetta la scadenza, la coda presume che l'attività non sia riuscita e tenta di nuovo.
Lettura delle intestazioni delle richieste di attività di App Engine
Le richieste inviate al tuo gestore App Engine da una coda Cloud Tasks hanno intestazioni speciali, che contengono informazioni specifiche per le attività che il gestore potrebbe voler utilizzare.
Queste intestazioni sono impostate internamente. Se una di queste intestazioni è presente in una richiesta esterna alla tua app, viene sostituita da quelle interne, ad eccezione delle richieste degli amministratori dell'applicazione che hanno eseguito l'accesso, che possono impostare le intestazioni per scopi di test.
Le richieste di attività di App Engine contengono sempre le seguenti intestazioni:
Intestazione | Descrizione |
---|---|
X-AppEngine-QueueName |
Il nome della coda. |
X-AppEngine-TaskName |
Il nome "breve" dell'attività o, se non è stato specificato alcun nome, un ID univoco generato dal sistema. Questo è il valore my-task-id nel nome completo dell'attività, ad esempio task_name = projects/my-project-id/locations/my-location/queues/my-queue-id/tasks/my-task-id . |
X-AppEngine-TaskRetryCount |
Il numero di nuovi tentativi dell'attività. Per il primo tentativo, il valore è 0 . Questo numero include i tentativi per cui l'attività non è riuscita a causa della mancanza di istanze disponibili e non ha mai raggiunto la fase di esecuzione. |
X-AppEngine-TaskExecutionCount |
Il numero di volte in cui l'attività è stata eseguita e ha ricevuto una risposta dal gestore. Poiché Cloud Tasks elimina l'attività una volta ricevuta una risposta corretta, tutte le precedenti risposte del gestore sono considerate errori. Questo numero non include gli errori dovuti alla mancanza di istanze disponibili. Tieni presente che X-AppEngine-TaskExecutionCount può essere uguale a X-AppEngine-TaskRetryCount se viene aggiornato prima del tentativo di esecuzione. |
X-AppEngine-TaskETA |
La pianificazione dell'attività, specificata in secondi dal 1° gennaio 1970. |
Se il gestore delle richieste trova una delle intestazioni elencate sopra, può considerare attendibile la richiesta come richiesta di Cloud Tasks.
Inoltre, le richieste di Cloud Tasks potrebbero contenere le seguenti intestazioni:
Intestazione | Descrizione |
---|---|
X-AppEngine-TaskPreviousResponse |
Il codice di risposta HTTP del precedente tentativo. |
X-AppEngine-TaskRetryReason |
Il motivo per riprovare. |
X-AppEngine-FailFast |
Indica che un'attività non riesce immediatamente se un'istanza esistente non è disponibile. |
Routing di destinazione
Nelle attività di App Engine, sia la coda che il gestore di attività vengono eseguiti all'interno dello stesso progetto Cloud. Il traffico è criptato durante il trasporto e non lascia mai i data center di Google. Non puoi impostare esplicitamente il protocollo, ad esempio HTTP o HTTPS. Tuttavia, la richiesta al gestore sembra di aver utilizzato il protocollo HTTP.
Le attività possono essere inviate a gestori di attività sicuri, gestori di attività non protetti e in runtime supportati, URI limitati con login: admin
.
Poiché le attività non vengono eseguite come utenti, non possono essere inviate a URI con restrizioni per login: required
.
Anche gli invii di attività non seguono i reindirizzamenti.
Passaggi successivi
- Per saperne di più sulle attività, consulta la documentazione relativa all'API RPC.
- Per saperne di più sulle attività, consulta la documentazione relativa all'API REST.