Scegli il metodo di creazione dell'attività

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

Il metodo BufferTask consente di creare un'attività inviando una richiesta HTTP alla fila. Il metodo CreateTask consente di creare un'attività costruendo l'oggetto attività. 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 abbia o meno 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 oggetti Attività App Engine (anziché come gli oggetti attività più tipici per i target HTTP generici 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 tuo tipo di attività:

Verificare se la coda ha il routing a livello di coda

  1. Esegui il comando gcloud tasks queues describe nel terminale:

    gcloud tasks queues describe QUEUE_NAME \
        --location=LOCATION

    Sostituisci quanto segue:

    • QUEUE_NAME: il nome della coda.
    • LOCATION: la regione in cui si trova la coda. Se non è specificato e se è presente un'app associata, viene utilizzata la posizione dell'app App Engine del progetto.
  2. Nell'output, cerca il campo httpTarget e controlla se è stato impostato uriOverride.

Code con routing a livello di coda

Per le code con routing a livello di coda, il metodo di creazione delle 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 instradamento diversi da quelli specificati a livello di coda: imposta UriOverrideEnforceMode della coda su IF_NOT_EXISTS per assicurarti che l'instradamento a livello di coda venga applicato alle attività per le quali non esiste un instradamento (ad esempio le attività BufferTask), ma rispetta l'instradamento delle attività che hanno le proprie specifiche di instradamento. Poi usa 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 metodo 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à in base alla coda in cui si trovano. 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à)
  • Utilizzare una coda come buffer davanti a un servizio di destinazione

L'approccio per target

Il routing a livello di coda funziona meglio con le 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
  • Creare attività senza costruire esplicitamente l'oggetto attività utilizzando il metodo BufferTask

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 contiene le proprie informazioni di routing. Utilizza questa impostazione se vuoi che la coda possa inviare attività a target diversi.
  • ALWAYS: il routing a livello di coda viene sempre applicato, anche se un'attività contiene le proprie informazioni di routing. Eventuali informazioni di instradamento impostate a livello di attività vengono sostituite dall'instradamento a livello di coda. Utilizza questa impostazione se vuoi richiedere alle attività di una determinata coda di utilizzare le stesse informazioni di instradamento.