我试图在同一个应用程序中以两种方式使用Camel:
在中间,亚马逊SQS应该处理命令的事务性,重试,分发等。
然而,当我将这两条路线加在一起时:
String sqsUri = "aws-sqs://myqueue";
from("direct:cmdQueue").marshal(json).log("Enqueued command").to(sqsUri);
from(sqsUri).unmarshal(json).log("Dequeued command").beanRef("cmdExecutor");
Camel完全短路SQS排队,同步处理消息直到结束,并且从未发送到SQS。
我尝试使用多个CamelContexts和RouteBuilders,但我仍然会遇到这种情况。
有没有办法强制交付给SQS? 感谢
答案 0 :(得分:0)
也许将消息发送到本地队列(例如vm)并从那里挑选并发送到SQS就可以了。发送到VM时,请务必将标志waitForTaskToComplete设置为false。