Creazione attività push

In questa pagina viene descritto come creare attività e inserirle in code in modalità push. Quando vuoi elaborare un'attività, devi creare un nuovo oggetto attività e inserirlo in una coda. Puoi specificare esplicitamente il servizio e l'handler che elaborano l'attività e, facoltativamente, passare all'handler i dati specifici dell'attività. Puoi anche ottimizza la configurazione dell'attività, ad esempio programmando un'ora nel futuro quando deve essere eseguita o limita il numero di volte in cui vuoi che l'attività in caso di errore.

Creazione di una nuova attività

Specificare il servizio worker

Quando un'attività viene estratta dalla coda, il servizio Coda di attività la invia a un servizio worker. Ogni attività ha un target e un url, che determinano e quale servizio e gestore eseguirà l'attività.

target

La destinazione specifica il servizio che riceverà la richiesta HTTP eseguire l'attività. Si tratta di una stringa che specifica un servizio/una versione/un'istanza in uno dei formati canonici. I moduli più utilizzati sono:

    service
    version.service
    instance.version.service

La stringa target viene anteposta al nome di dominio della tua app. Esistono tre modi per impostare la destinazione per un'attività:

  • Dichiara il target quando crei l'attività.

  • Includi un'istruzione target quando definisci una coda nella queue.yaml, come nella definizione di queue-blue. Tutte le attività aggiunte a una coda con un target utilizzeranno quel target, anche se è stato assegnato un obiettivo diverso all'attività al momento della costruzione.

  • Se non viene specificata nessuna destinazione in base a uno dei due metodi precedenti, il target dell'attività è la versione del servizio che la accoda. Tieni presente che se accoda un'attività dal servizio e dalla versione predefiniti in in questo modo e la versione predefinita cambia prima dell'esecuzione dell'attività, verranno eseguite nella nuova versione predefinita.

url

url seleziona uno degli handler nel servizio di destinazione che eseguirà l'attività.

url deve corrispondere a uno dei pattern URL del gestore nel target completamente gestito di Google Cloud. url può includere parametri di ricerca se il metodo specificato nell'attività è GET o PULL. Se non viene specificato alcun url, l'URL predefinito Viene utilizzato /_ah/queue/[QUEUE_NAME], dove [QUEUE_NAME] è il nome dell'attività.

Trasferimento dei dati al gestore

Puoi passare i dati al gestore come parametri di ricerca nell'URL dell'attività, ma solo se il metodo specificato nell'attività è GET o PULL.

Assegnare un nome a un'attività

Quando crei una nuova attività, App Engine assegna all'attività un nome univoco predefinito. Tuttavia, puoi assegnare il tuo nome a un'attività utilizzando il parametro name. Un vantaggio dell'assegnazione di nomi alle attività è che le attività con nome vengono eliminate, il che significa che puoi utilizzare i nomi delle attività per garantire che un'attività venga aggiunta una sola volta. La deduplicazione continua per 9 giorni dopo il viene completata o eliminata.

Tieni presente che la logica di deduplicazione introduce un sovraccarico di prestazioni significativo, con conseguente aumento delle latenze e potenziali maggiori tassi di errore associate ad attività con nome. Questi costi possono aumentare notevolmente se i nomi delle attività sono sequenziali, ad esempio con i timestamp. Quindi, se assegni nomi personalizzati, consigliamo di utilizzare un prefisso ben distribuito per i nomi delle attività, come un hash nei contenuti.

Se assegni i tuoi nomi alle attività, tieni presente che la lunghezza massima del nome è 500 e il nome può contenere lettere maiuscole e minuscole, numeri trattini bassi e trattini.

Passaggi successivi