Scegli il metodo di creazione delle attività

Puoi creare attività HTTP utilizzando il metodo BufferTask o Metodo CreateTask. Questa pagina fornisce indicazioni su come scegliere tra due metodi per creare attività HTTP.

Il metodo BufferTask ti consente di creare un'attività inviando una richiesta HTTP al in coda. Il metodo CreateTask ti consente di creare un'attività costruendola . Per la maggior parte dei casi d'uso, la creazione esplicita dell'oggetto attività non è necessaria. Il metodo migliore per creare attività dipende dal fatto che la coda ha il routing a livello di coda.

Prima di iniziare

Controlla il seguente elenco di casi d'uso per verificare se uno di questi si applica al tuo caso:

  • Vuoi creare attività utilizzando l'API RPC o le librerie client (anziché l'API REST)
  • Vuoi creare attività come Gli oggetti delle attività di App Engine (anziché più tipici oggetti di attività per destinazioni HTTP generiche che possono o meno essere target App Engine)

Se uno di questi casi si applica al tuo caso, non devi scegliere il metodo di creazione delle attività perché è supportato un solo metodo (il metodo CreateTask). Vai direttamente alla documentazione CreateTask per il tipo di attività:

Verificare se la coda ha il routing a livello di coda

  1. Esegui il seguente comando gcloud CLI nel terminale:

    gcloud tasks queues describe QUEUE_NAME

    Sostituisci QUEUE_NAME con il nome della coda.

  2. Nell'output, cerca il campo httpTarget e controlla se è stato impostato uriOverride.

    • Se l'output include una riga per uriOverride con un host specificato, la coda ha il routing a livello di coda. Per scegliere il metodo di creazione delle attività, consulta la sezione Code con routing a livello di coda.

    • Se l'output non include una riga per uriOverride o se La descrizione di uriOverride non mostra un valore host specificato, la tua coda sì non hanno il routing a livello di coda. Per scegliere il metodo di creazione delle attività, consulta le sezione Code senza routing a livello di coda (o configurare il routing a livello di coda).

Code con routing a livello di coda

Per le code con routing a livello di coda, il metodo di creazione dell'attività dipende dai requisiti di routing dell'attività:

  • La task ha gli stessi requisiti di instradamento specificati a livello di coda: Utilizza BufferTask. Scopri come creare attività con il metodo BufferTask.
  • L'attività ha requisiti di routing diversi da quelli specificati a livello di coda: Imposta il valore UriOverrideEnforceMode a IF_NOT_EXISTS per garantire che il routing a livello di coda si applichi alle attività per quale instradamento non esiste (ad esempio, attività BufferTask), ma rispetta il routing di attività con specifiche specifiche di routing. Quindi utilizza CreateTask. Questo metodo ti consente di specificare il routing individuale per l'attività. Scopri come creare attività con il metodo CreateTask.

Code senza routing a livello di coda

Per le code senza routing a livello di coda, crea le attività utilizzando il metodo CreateTask (o configura il routing a livello di coda). Il metodo CreateTask include la specifica del routing per la task, che è obbligatoria per le code che non dispongono già di informazioni sul routing a livello di coda. Scopri come creare attività con il CreateTask .

Informazioni sul routing a livello di coda

Il routing a livello di coda consente di specificare le informazioni di routing predefinite per le attività nella coda in cui si trova. Puoi specificare se vuoi che il routing predefinito sia applicato solo alle attività che non dispongono di informazioni di routing proprie o a tutte le attività.

Scegli il routing a livello di coda se vuoi:

  • Creare attività con richieste HTTP standard (anziché con la costruzione dell'oggetto attività)
  • Usa una coda come buffer davanti a un servizio di destinazione

L'approccio per target

Il routing a livello di coda funziona al meglio con architetture che utilizzano una coda per ogni servizio di destinazione. Questo modello ti consente di:

  • Gestire le attività in base al target (ad esempio, reindirizzare un gruppo di attività se il servizio di destinazione non è attivo)
  • Invia tutte le attività in una coda allo stesso target
  • Crea le attività senza creare esplicitamente l'oggetto attività utilizzando il comando BufferTask metodo

Attivare e disattivare il comportamento di override a livello di coda

Dopo aver configurato il routing a livello di coda, puoi decidere quando viene applicato impostando UriOverrideEnforceMode della coda.

  • IF_NOT_EXISTS: il routing a livello di coda si applica solo quando un'attività non contenere le proprie informazioni di routing. Utilizza questa impostazione se desideri che la coda in grado di inviare attività a obiettivi diversi.
  • ALWAYS: il routing a livello di coda viene sempre applicato, anche se un'attività contiene le proprie informazioni di routing. Tutte le informazioni di routing impostate a livello di attività sono sovrascritto dal routing a livello di coda. Utilizza questa impostazione se vuoi richiedere alle attività di una determinata coda di utilizzare le stesse informazioni di instradamento.