Messaggi di consumo

Utilizza i messaggi di una coda e dei relativi canali.

L'utilizzo dei messaggi richiede autorizzazioni alla coda e l'accesso al relativo endpoint dei messaggi.

Una risposta a una richiesta GetMessages contiene la lista dei messaggi con il relativo payload, l'ID messaggio, l'ora di scadenza, il timeout di visibilità, il conteggio delle consegne e un receipt. Il numero massimo di messaggi che possono essere restituiti in una risposta è 20, ma il numero effettivo di messaggi restituiti dipende dal numero di messaggi disponibili e dal fatto che la richiesta abbia utilizzato il polling lungo.

I consumer sono responsabili dell'aggiornamento dei messaggi e dell'eliminazione dei messaggi, che richiedono l'utilizzo di receipt.

Blocco messaggi

I consumer possono "bloccare" un messaggio recuperato dalla coda in modo che un altro consumer non possa recuperare lo stesso messaggio. I messaggi vengono bloccati specificando un timeout visibilità. L'API Queue utilizza il parametro visibilityInSeconds per impostare questo valore.

Il timeout di visibilità può essere impostato a livello di coda durante la creazione di una coda oppure può essere specificato durante l'utilizzo o l'aggiornamento dei messaggi. Se un consumer ha difficoltà a elaborare correttamente un messaggio, può aggiornarlo per estenderne l'invisibilità. Se il timeout di visibilità di un messaggio non è esteso e il consumer non elimina il messaggio, torna alla coda.

Quando si utilizza, non è necessario specificare il timeout di visibilità. Il timeout di visibilità configurato per la coda si applica alla richiesta. Quando si crea una coda, il timeout di visibilità predefinito è di 30 secondi. Se si include il parametro di timeout di visibilità facoltativo in una richiesta, è possibile specificare un valore minimo di 0 secondi e un valore massimo di 12 ore.

L'utilizzo di un timeout di visibilità pari a 0 funge effettivamente da funzionalità di anteprima. I messaggi recuperati in questo modo saranno probabilmente consegnati a un altro consumatore, perché la loro visibilità non cambia.

Conteggio consegne

Ogni volta che un messaggio viene recuperato utilizzando una richiesta GetMessages o tramite il polling della console, aumenta il conteggio delle consegne. Se il conteggio delle consegne supera il numero massimo configurato della coda, il messaggio viene inviato alla coda delle lettere morte.

Polling lungo

Per impostazione predefinita, una richiesta GetMessages utilizza un polling lungo. La richiesta attende i messaggi per 30 secondi e, se il timeout passa e non sono disponibili messaggi per l'utilizzo, restituisce una risposta vuota. Il polling lungo è utile per evitare tentativi di loop serrato sulle risposte vuote.

I consumatori possono modificare questo comportamento includendo il parametro timeoutInSeconds nella richiesta, che accetta valori compresi tra 0 e 30 secondi. L'impostazione del valore timeoutInSeconds su 0 comporta una risposta immediata dalla coda, indipendentemente dal fatto che siano disponibili o meno messaggi.