Invio, ricezione ed eliminazioneAmazon SQSMessaggi - AWS SDK for Java 1. x

La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-supportdicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare AWS SDK for Java 2.xa ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

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à.

Invio, ricezione ed eliminazioneAmazon SQSMessaggi

In questo argomento viene descritto l'invio, ricezione ed eliminazioneAmazon SQSMessaggi. I messaggi vengono sempre distribuiti tramite una coda SQS.

Inviare un messaggio

Aggiungi un solo messaggio a un oggettoAmazon SQScoda chiamando il client AmazonSQSsendMessageMetodo. Fornisci un oggetto SendMessageRequest contenente l'URL della coda, il corpo del messaggio e il valore di ritardo opzionale (in secondi).

Importazioni

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.SendMessageRequest;

Codice

SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);

Vedi l'esempio completo su GitHub.

Invia più messaggi contemporaneamente

Puoi inviare più messaggi in una singola richiesta. Per inviare più messaggi, utilizza il client AmazonSQSsendMessageBatchmetodo, che richiede unSendMessageBatchRequestcontenente l'URL della coda e un elenco di messaggi (ognuno diSendMessageBatchRequestEntry) da inviare. È inoltre possibile impostare un valore di ritardo opzionale per messaggio.

Importazioni

import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;

Codice

SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest() .withQueueUrl(queueUrl) .withEntries( new SendMessageBatchRequestEntry( "msg_1", "Hello from message 1"), new SendMessageBatchRequestEntry( "msg_2", "Hello from message 2") .withDelaySeconds(10)); sqs.sendMessageBatch(send_batch_request);

Vedi l'esempio completo su GitHub.

ricevi messaggi

Recupera eventuali messaggi che si trovano attualmente nella coda chiamando il client AmazonSQSreceiveMessageMetodo, passando l'URL della coda. I messaggi vengono restituiti come un elenco di oggetti Message.

Importazioni

import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.SendMessageBatchRequest;

Codice

List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();

Elimina messaggi dopo la ricezione

Dopo aver ricevuto un messaggio ed elaborato il relativo contenuto, elimina il messaggio dalla coda inviando l'handle di ricezione del messaggio e l'URL della coda al client AmazonSQSdeleteMessageMetodo.

Codice

for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }

Vedi l'esempio completo su GitHub.

Ulteriori informazioni