[
https://issues.apache.org/jira/browse/CAMEL-10587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15889859#comment-15889859
]
Claus Ibsen commented on CAMEL-10587:
-------------------------------------
As the extender task is one per message, I think it would make more sense to
make it one per batch, and then let it loop all the messages in the batch.
Otherwise if you have 100 messages in a batch its 100 tasks on the thread pool
to execute and there is only 1 thread.
In Camel JMX you should see the SqsTimeoutExtender thread pool and you can see
how deep its task queue is at runtime and see if there is outstanding tasks
that are not run.
> Extending SQS message invisibility timeout not working in some cases
> --------------------------------------------------------------------
>
> Key: CAMEL-10587
> URL: https://issues.apache.org/jira/browse/CAMEL-10587
> Project: Camel
> Issue Type: Bug
> Components: camel-aws
> Affects Versions: 2.18.0
> Reporter: Sindre Mehus
> Fix For: 2.18.3, 2.19.0
>
>
> org.apache.camel.component.aws.sqs.SqsConsumer creates a TimeoutExtender task
> for each message received in a batch, but these tasks should be started
> *before* processing the messages.
> Error can be reproduced as follows:
> 1. Create an SQS-consuming route using maxMessagesPerPoll=10,
> extendMessageVisibility=true, visibilityTimeout=30, waitTimeSeconds=20.
> 2. Add a process step in the route which just sleeps for a long time.
> 3. Put 20-30 messages on the SQS queue.
> 4. Start the route.
> 5. Let's say the SQS consumer reads off 10 messages.
> 6. Observe in the AWS SQS console that 10 messages are in-flight.
> 7. After 30 seconds you can observe that only 1 message is in-flight. This is
> incorrect.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)