Author: ningjiang Date: Thu Nov 1 10:15:34 2012 New Revision: 1404532 URL: http://svn.apache.org/viewvc?rev=1404532&view=rev Log: CAMEL-5761 Update SqsConsumer to extend Visibility Timeout correctly with thanks to Carlos
Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java?rev=1404532&r1=1404531&r2=1404532&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java (original) +++ camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java Thu Nov 1 10:15:34 2012 @@ -113,8 +113,11 @@ public class SqsConsumer extends Schedul int period = visibilityTimeout.intValue(); LOG.debug("Scheduled TimeoutExtender task to start after {} delay, and run with {} period (seconds) to extend exchangeId: {}", new Object[]{delay, period, exchange.getExchangeId()}); + int repeatSeconds = new Double(visibilityTimeout.doubleValue() * 1.5).intValue(); // + LOG.debug("period :" + period); + LOG.debug("repeatSeconds :" + repeatSeconds); final ScheduledFuture<?> scheduledFuture = this.scheduledExecutor.scheduleAtFixedRate( - new TimeoutExtender(exchange, visibilityTimeout), delay, period, TimeUnit.SECONDS); + new TimeoutExtender(exchange, repeatSeconds), delay, period, TimeUnit.SECONDS); exchange.addOnCompletion(new Synchronization() { @Override public void onComplete(Exchange exchange) { @@ -269,4 +272,4 @@ public class SqsConsumer extends Schedul } } -} \ No newline at end of file +} Modified: camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java?rev=1404532&r1=1404531&r2=1404532&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java (original) +++ camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsExtendMessageVisibilityTest.java Thu Nov 1 10:15:34 2012 @@ -61,7 +61,8 @@ public class SqsExtendMessageVisibilityT for (ChangeMessageVisibilityRequest req : this.clientMock.changeMessageVisibilityRequests) { assertEquals("https://queue.amazonaws.com/541925086079/MyQueue", req.getQueueUrl()); assertEquals(RECEIPT_HANDLE, req.getReceiptHandle()); - assertEquals(new Integer(4), req.getVisibilityTimeout()); + Integer expectedTimeout = new Integer(6); // Should be 1.5 x TIMEOUT as takes into account the delay period + assertEquals(expectedTimeout, req.getVisibilityTimeout()); } }