2013-10-18 59 views
0

我對駱駝有點新,所以請原諒我,如果這是一個愚蠢的問題!駱駝每小時消費不超過1條消息?

在駱駝,我有一個隊列競爭消費者名單,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");  

這是我的理解是路線同步執行(與specific components designed to work asynchronously除外)。基於這種理解,我相信這條路線可以滿足這些要求。

這會做我想要的嗎?爲什麼或者爲什麼不?

回答

2

您的路線將消耗隊列中的消息,然後等待一個小時。

如果要等待一個小時,然後讀取郵件,看ScheduledPollConsumer選項(Doc) 某些選項允許使用調度像Quartz2或基於Spring調度。如果您想確定:.to("log:com.mycompany.order?level=DEBUG"),請使用​​組件。

+0

非常好。這與我所看到的相符。謝謝你的確認! – sigpwned