In questa pagina viene descritto come creare attività e inserirle nelle code in modalità push. Quando vuoi elaborare un'attività, devi creare un nuovo oggetto attività e posizionarlo su una coda. Puoi specificare esplicitamente il servizio e il gestore che elaborano l'attività e, facoltativamente, passare al gestore i dati specifici dell'attività. Puoi anche perfezionare la configurazione dell'attività, ad esempio pianificare un momento futuro in cui deve essere eseguita o limitare il numero di tentativi dell'attività in caso di errore.
Creazione di una nuova attività
Specifica del servizio worker
Quando un'attività viene scollegata dalla coda, il servizio coda di attività la invia a un servizio worker. Ogni attività ha un target e un URL, che determinano quale servizio e gestore eseguiranno l'attività.
target
La destinazione specifica il servizio che riceverà la richiesta HTTP per eseguire l'attività. È una stringa che specifica un servizio, una versione o un'istanza in uno qualsiasi dei moduli canonici. I moduli più utilizzati sono:
service
version.service
instance.version.service
La stringa di destinazione è anteposta al nome di dominio dell'app. Esistono tre modi per impostare la destinazione per un'attività:
Dichiara la destinazione quando crei l'attività.
Includi un'istruzione
target
quando definisci una coda inqueue.yaml
, come nella definizione diqueue-blue
. Tutte le attività aggiunte a una coda contarget
utilizzeranno quella destinazione, anche se all'attività è stata assegnata una destinazione diversa al momento della creazione.Se non viene specificata alcuna destinazione in base a uno dei due metodi precedenti, la destinazione dell'attività sarà la versione del servizio che la mette in coda. Tieni presente che se accoda un'attività dal servizio e dalla versione predefiniti in questo modo e la versione predefinita cambia prima dell'esecuzione, l'attività verrà eseguita nella nuova versione predefinita.
url
url
seleziona uno dei gestori nel servizio di destinazione, che eseguirà l'attività.
url
deve corrispondere a uno dei pattern URL del gestore nel servizio di destinazione. url
può includere parametri di ricerca se il metodo specificato nell'attività è GET
o PULL
. Se url
non viene specificato, viene utilizzato l'URL predefinito /_ah/queue/[QUEUE_NAME]
, dove [QUEUE_NAME]
è il nome della coda dell'attività.
Passaggio di 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 per impostazione predefinita. Tuttavia, puoi assegnare il tuo nome a un'attività utilizzando il parametro name
. Un vantaggio dell'assegnazione di nomi personalizzati alle attività è che le attività denominate vengono deduplicate, il che significa che puoi utilizzare i nomi per garantire che un'attività venga aggiunta una sola volta. La deduplicazione continua per 9 giorni dopo il completamento o l'eliminazione dell'attività.
Tieni presente che la logica di deduplicazione introduce un overhead significativo delle prestazioni, con un conseguente aumento delle latenze e dei tassi di errore associati alle attività con nome. Questi costi possono essere aumentati notevolmente se i nomi delle attività sono sequenziali, ad esempio per i timestamp. Se assegni nomi personalizzati, ti consigliamo di utilizzare un prefisso ben distribuito per i nomi delle attività, ad esempio un hash dei contenuti.
Se assegni nomi personalizzati alle attività, tieni presente che la lunghezza massima del nome è 500 caratteri e che può contenere lettere maiuscole e minuscole, numeri trattini bassi e trattini.
Passaggi successivi
- Scopri come creare gestori di attività.