You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Yi Yan <yy...@talend.com> on 2016/09/22 10:52:07 UTC

How to delete messages by AWS-SQS Component with deleteAfterRead

Hi,

I'm using camel-aws version 2.17.3, the deleteAfterRead options works well when I only set it by true, but when I use deleteIfFiltered(false) together, the message will not be deleted, then I changed them both as true the message can be deleted in queue. Is there any relationship between deleteAfterRead and deleteAfterRead? Does it mean if I use deleteAfterRead with deleteAfterRead together, I need to set them both with true when I want to delete the messages after read it?

No message will not be delete
[code]
from("aws-sqs:myQueue"
		+ "?amazonSQSClient=#myClient "
		+ "&deleteAfterRead= true&deleteIfFiltered=false + "&attributeNames=All")
		.filter().simple("${body} == 'foo'").to("log:qs_route.cLog_1" + "?level=WARN");

from("timer:cTimer_1" + "?repeatCount=" + 2 + "&delay=" + 1000)
		.routeId("qs_route_cTimer_1")
		.setBody()
		.constant("bar").to("aws-sqs:myQueue "
		+ "? amazonSQSClient=#myClient")

from("timer:cTimer_2" + "?repeatCount=" + 2 + "&delay=" + 1000)
		.setBody()
		.constant("foo").to("aws-sqs:myQueue "
		+ "? amazonSQSClient=#myClient");
 [/code]


Thanks,
Yi