diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/aws/SqsService.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/aws/SqsService.java index f690bde5..025ece12 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/aws/SqsService.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/aws/SqsService.java @@ -17,6 +17,8 @@ @Component public class SqsService { private static final String QUEUE_NAME = "apm_test"; + private static final long PURGE_INTERVAL_MS = 60000; // 60 seconds + private volatile long lastPurgeTime = 0; final SqsClient sqs; public SqsService() { @@ -58,13 +60,18 @@ public void sendMsg() { .build(); sqs.sendMessage(sendMsgRequest); - PurgeQueueRequest purgeReq = PurgeQueueRequest.builder().queueUrl(queueUrl).build(); - try { - sqs.purgeQueue(purgeReq); - } catch (SqsException e) { - System.out.println(e.awsErrorDetails().errorMessage()); - throw e; + // Only purge if 60+ seconds have passed since last purge + long currentTime = System.currentTimeMillis(); + if (currentTime - lastPurgeTime >= PURGE_INTERVAL_MS) { + PurgeQueueRequest purgeReq = PurgeQueueRequest.builder().queueUrl(queueUrl).build(); + try { + sqs.purgeQueue(purgeReq); + lastPurgeTime = currentTime; + } catch (SqsException e) { + System.out.println("Purge failed: " + e.awsErrorDetails().errorMessage()); + // Don't rethrow - continue operation even if purge fails + } } } -} +} \ No newline at end of file