私はキャメルに少し慣れていないので、これがばかげた質問である場合はご容赦ください!
Camel では、キューに対して競合するコンシューマーのリストがありますqueue-1
。各コンシューマーがキューの読み取りを試みるまで 1 時間待機するようにしたいのですが、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");
ルートが同期的に実行されることを理解しています (ただし、非同期的に動作するように設計された特定のコンポーネントは例外です)。その理解に基づいて、このルートはそれらの要件を満たしていると思います。
これは私が望むことをしますか?なぜですか、そうでないのですか?