次のように、Camelに必要なことをさせる方法があるのだろうか:
「何らかのソース (ファイルとしましょう) から定期的にデータを読み取り、何らかの処理を行い、別の場所に書き込みます」
「定期的に」部分を除いて、すべてを行う方法を見つけました。Quartz または Timer を使用してルートをトリガーする方法を知っています。しかし、それらを使用すると、その部分はすでに使用されているため、これ以上ボディを変更することはできません.
何かアドバイス?
次のように、Camelに必要なことをさせる方法があるのだろうか:
「何らかのソース (ファイルとしましょう) から定期的にデータを読み取り、何らかの処理を行い、別の場所に書き込みます」
「定期的に」部分を除いて、すべてを行う方法を見つけました。Quartz または Timer を使用してルートをトリガーする方法を知っています。しかし、それらを使用すると、その部分はすでに使用されているため、これ以上ボディを変更することはできません.
何かアドバイス?
スケジュールされたルート ポリシーも使用できます http://camel.apache.org/scheduledroutepolicy.html
timer/quartz で開始してから、コンテンツ エンリッチャーまたはポーリング コンシューマーのいずれかを使用できます。
//using timer/pollEnrich to populate the body with the polling results
from("timer://foo?period=5000")
.pollEnrich("file:inbox")
.to("file:outbout");
//using time/polling consumer bean for more flexibility and multiple polling
from("timer://foo?period=5000")
.bean(myPollingConsumerBean, "doIt");
public static class MyPollingConsumerBean {
...
public void doIt() {
while (true) {
String msg = consumer.receiveBody("file:inbox", 3000, String.class);
if (msg == null) {
break;
}
producer.sendBody("file:outbox", msg);
}
}
}