55
66// snippet-start:[sqs.java2.sendRecvBatch.main]
77// snippet-start:[sqs.java2.sendRecvBatch.import]
8- import software .amazon .awssdk .regions .Region ;
8+
9+ import org .slf4j .Logger ;
10+ import org .slf4j .LoggerFactory ;
911import software .amazon .awssdk .services .sqs .SqsClient ;
10- import software .amazon .awssdk .services .sqs .model .*;
12+ import software .amazon .awssdk .services .sqs .model .BatchResultErrorEntry ;
13+ import software .amazon .awssdk .services .sqs .model .CreateQueueRequest ;
14+ import software .amazon .awssdk .services .sqs .model .DeleteMessageBatchRequest ;
15+ import software .amazon .awssdk .services .sqs .model .DeleteMessageBatchRequestEntry ;
16+ import software .amazon .awssdk .services .sqs .model .DeleteMessageBatchResponse ;
17+ import software .amazon .awssdk .services .sqs .model .DeleteMessageBatchResultEntry ;
18+ import software .amazon .awssdk .services .sqs .model .DeleteQueueRequest ;
19+ import software .amazon .awssdk .services .sqs .model .Message ;
20+ import software .amazon .awssdk .services .sqs .model .MessageAttributeValue ;
21+ import software .amazon .awssdk .services .sqs .model .ReceiveMessageRequest ;
22+ import software .amazon .awssdk .services .sqs .model .SendMessageBatchRequest ;
23+ import software .amazon .awssdk .services .sqs .model .SendMessageBatchRequestEntry ;
24+ import software .amazon .awssdk .services .sqs .model .SendMessageBatchResponse ;
25+ import software .amazon .awssdk .services .sqs .model .SendMessageBatchResultEntry ;
26+ import software .amazon .awssdk .services .sqs .model .SqsException ;
1127
1228import java .io .IOException ;
1329import java .nio .file .Files ;
1733import java .util .HashMap ;
1834import java .util .List ;
1935import java .util .Map ;
20- import java .util .logging .Level ;
21- import java .util .logging .Logger ;
2236// snippet-end:[sqs.java2.sendRecvBatch.import]
2337
2438
3650 */
3751
3852public class SendRecvBatch {
39- private static final Logger logger = Logger .getLogger (SendRecvBatch .class .getName ());
40- static {
41- Logger rootLogger = Logger .getLogger ("" );
42- rootLogger .setLevel (Level .WARNING );
43- }
44- private static final SqsClient sqsClient = SqsClient .builder ()
45- .region (Region .US_WEST_2 )
46- .build ();
53+ private static final Logger LOGGER = LoggerFactory .getLogger (SendRecvBatch .class );
54+ private static final SqsClient sqsClient = SqsClient .create ();
55+
56+
57+ public static void main (String [] args ) {
58+ String queueName = "testQueue" + System .currentTimeMillis ();
59+ String queueUrl = createQueue (queueName );
60+
61+ // Send messages to the queue
62+ List <MessageEntry > messages = new ArrayList <>();
63+ messages .add (new MessageEntry ("Hello world!" , null ));
64+ messages .add (new MessageEntry ("Hello world 2!" , null ));
65+ messages .add (new MessageEntry ("Hello world 3!" , null ));
66+ SendMessageBatchResponse response = sendMessages (queueUrl , messages );
67+
68+ // Receive messages from the queue
69+ List <Message > receivedMessages = receiveMessages (queueUrl , 10 , 10 );
70+
71+ // Delete messages from the queue
72+ deleteMessages (queueUrl , receivedMessages );
4773
74+ // Delete the queue
75+ deleteQueue (queueUrl );
76+ }
4877 // snippet-start:[sqs.java2.sendRecvBatch.sendBatch]
4978 /**
5079 * Send a batch of messages in a single request to an SQS queue.
@@ -80,22 +109,22 @@ public static SendMessageBatchResponse sendMessages(
80109
81110 if (!response .successful ().isEmpty ()) {
82111 for (SendMessageBatchResultEntry resultEntry : response .successful ()) {
83- logger .info ("Message sent: " + resultEntry .messageId () + ": " +
112+ LOGGER .info ("Message sent: " + resultEntry .messageId () + ": " +
84113 messages .get (Integer .parseInt (resultEntry .id ())).getBody ());
85114 }
86115 }
87116
88117 if (!response .failed ().isEmpty ()) {
89118 for (BatchResultErrorEntry errorEntry : response .failed ()) {
90- logger . warning ("Failed to send: " + errorEntry .id () + ": " +
119+ LOGGER . warn ("Failed to send: " + errorEntry .id () + ": " +
91120 messages .get (Integer .parseInt (errorEntry .id ())).getBody ());
92121 }
93122 }
94123
95124 return response ;
96125
97126 } catch (SqsException e ) {
98- logger . log ( Level . SEVERE , "Send messages failed to queue: " + queueUrl , e );
127+ LOGGER . error ( "Send messages failed to queue: " + queueUrl , e );
99128 throw e ;
100129 }
101130 }
@@ -126,13 +155,13 @@ public static List<Message> receiveMessages(String queueUrl, int maxNumber, int
126155 List <Message > messages = sqsClient .receiveMessage (receiveRequest ).messages ();
127156
128157 for (Message message : messages ) {
129- logger .info ("Received message: " + message .messageId () + ": " + message .body ());
158+ LOGGER .info ("Received message: " + message .messageId () + ": " + message .body ());
130159 }
131160
132161 return messages ;
133162
134163 } catch (SqsException e ) {
135- logger . log ( Level . SEVERE , "Couldn't receive messages from queue: " + queueUrl , e );
164+ LOGGER . error ( "Couldn't receive messages from queue: " + queueUrl , e );
136165 throw e ;
137166 }
138167 }
@@ -167,20 +196,20 @@ public static DeleteMessageBatchResponse deleteMessages(String queueUrl, List<Me
167196
168197 if (!response .successful ().isEmpty ()) {
169198 for (DeleteMessageBatchResultEntry resultEntry : response .successful ()) {
170- logger .info ("Deleted " + messages .get (Integer .parseInt (resultEntry .id ())).receiptHandle ());
199+ LOGGER .info ("Deleted " + messages .get (Integer .parseInt (resultEntry .id ())).receiptHandle ());
171200 }
172201 }
173202
174203 if (!response .failed ().isEmpty ()) {
175204 for (BatchResultErrorEntry errorEntry : response .failed ()) {
176- logger . warning ("Could not delete " + messages .get (Integer .parseInt (errorEntry .id ())).receiptHandle ());
205+ LOGGER . warn ("Could not delete " + messages .get (Integer .parseInt (errorEntry .id ())).receiptHandle ());
177206 }
178207 }
179208
180209 return response ;
181210
182211 } catch (SqsException e ) {
183- logger . log ( Level . SEVERE , "Couldn't delete messages from queue " + queueUrl , e );
212+ LOGGER . error ( "Couldn't delete messages from queue " + queueUrl , e );
184213 throw e ;
185214 }
186215 }
@@ -311,7 +340,7 @@ public static void usageDemo() {
311340 }
312341
313342 } catch (IOException e ) {
314- logger . log ( Level . SEVERE , "Error reading file" , e );
343+ LOGGER . error ( "Error reading file" , e );
315344 } finally {
316345 // Clean up by deleting the queue.
317346 DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest .builder ()
@@ -325,9 +354,19 @@ public static void usageDemo() {
325354 System .out .println ("-" .repeat (88 ));
326355 }
327356
328- public static void main (String [] args ) {
329- usageDemo ();
357+ private static String createQueue (String queueName ) {
358+ CreateQueueRequest createRequest = CreateQueueRequest .builder ()
359+ .queueName (queueName )
360+ .build ();
361+ return sqsClient .createQueue (createRequest ).queueUrl ();
362+ }
363+
364+ private static void deleteQueue (String queueUrl ) {
365+ DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest .builder ()
366+ .queueUrl (queueUrl )
367+ .build ();
368+ sqsClient .deleteQueue (deleteQueueRequest );
330369 }
331- }
370+ }
332371// snippet-end:[sqs.java2.sendRecvBatch.scenario]
333372// snippet-end:[sqs.java2.sendRecvBatch.main]
0 commit comments