La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-support
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Abilitazione del long polling perAmazon SQSCoda di messaggi
Amazon SQSutilizzashort pollingper impostazione predefinita, eseguendo query solo a un sottoinsieme di server, in base a una distribuzione random ponderata, per determinare se i messaggi sono disponibili per essere inclusi nella risposta.
Il polling lungo aiuta a ridurre i costi di utilizzoAmazon SQSriducendo il numero di risposte vuote quando non ci sono messaggi disponibili da restituire in risposta a ReceiveMessage richiesta inviata a unAmazon SQScoda ed eliminazione di false risposte vuote.
Nota
È possibile impostare una frequenza di polling lunga da1-20 secondi.
Abilitazione del long polling alla creazione di una coda
Per abilitare il polling lungo durante la creazione di unAmazon SQScoda, imposta ilReceiveMessageWaitTimeSeconds
attributo sulCreateQueueRequestoggetto prima di chiamare la classe AmazonSQS»createQueue
metodo.
Importazioni
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;
Codice
final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Enable long polling when creating a queue CreateQueueRequest create_request = new CreateQueueRequest() .withQueueName(queue_name) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }
Vedi l'esempio completo
Abilitazione del long polling su una coda esistente
Oltre ad abilitare il polling lungo durante la creazione di una coda, è anche possibile attivarla su una coda esistente impostandoReceiveMessageWaitTimeSeconds
sulSetQueueAttributesRequestprima di chiamare la classe AmazonSQS»setQueueAttributes
metodo.
Importazioni
import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;
Codice
SetQueueAttributesRequest set_attrs_request = new SetQueueAttributesRequest() .withQueueUrl(queue_url) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); sqs.setQueueAttributes(set_attrs_request);
Vedi l'esempio completo
Abilitazione del long polling alla ricezione del messaggio
È possibile abilitare il polling lungo quando si riceve un messaggio impostando il tempo di attesa in secondi sulReceiveMessageRequestche fornisci alla classe AmazonSQS»receiveMessage
metodo.
Nota
Dovresti assicurarti che ilAWSil timeout della richiesta del cliente è superiore al tempo massimo lungo di sondaggio (20s) in modo che il tuoreceiveMessage
le richieste non scadono durante l'attesa del prossimo evento del sondaggio!
Importazioni
import com.amazonaws.services.sqs.model.ReceiveMessageRequest;
Codice
ReceiveMessageRequest receive_request = new ReceiveMessageRequest() .withQueueUrl(queue_url) .withWaitTimeSeconds(20); sqs.receiveMessage(receive_request);
Vedi l'esempio completo
Ulteriori informazioni
-
Amazon SQSLong PollingnellaAmazon SQSGuida per gli sviluppatori
-
CreateQueuenellaAmazon SQSDocumentazione di riferimento API
-
ReceiveMessagenellaAmazon SQSDocumentazione di riferimento API
-
SetQueueAttributesnellaAmazon SQSDocumentazione di riferimento API