我对骆驼有点陌生,所以如果这是个愚蠢的问题,请原谅我!
在“骆驼”一书中,我列出了与队列queue-1相竞争的消费者名单。我希望每个使用者在试图读取队列之间等待1小时,但是一旦一个小时过去,每个使用者都应该持续轮询,直到收到消息为止。一旦它收到一条消息,它应该处理它,然后等待一个小时后再尝试另一次读取,依此类推。
这是我设置的路线:
from("aws-sqs://queue-1?accessKey=ABC&secretKey=XYZ&maxMessagesPerPoll=1")
.unmarshal().base64()
.unmarshal().serialization()
.throttle(1)
.timePeriodMillis(TimeUnit.HOUR.toMillis(1))
.bean(new ProcessorBean())
.marshal().serialization()
.marshal().base64()
.to("aws-sqs://queue-2?accessKey=ABC&secretKey=XYZ"); 据我理解,路由是同步执行的(设计为异步工作的特定组件除外)。基于这一理解,我认为这条路线符合这些要求。
这能做我想做的吗?为什么或者为什么不?
发布于 2013-10-21 08:59:39
您的路由将在队列中使用一条消息,然后等待一个小时。
如果您想要等待一个小时,然后读取消息,请查看ScheduledPollConsumer Options (医生)某些选项允许使用调度器,如基于Quartz2或基于Spring的调度程序。
如果您想要确定:日志组件,请使用.to("log:com.mycompany.order?level=DEBUG")组件。
https://stackoverflow.com/questions/19454043
复制相似问题