如何使用Apache Camel定期处理某些输入

qqrboqgw  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(119)

我想知道是否有一种方法可以让 Camel 做我需要的事情,这是如下:
定期从某个源(比如说文件)读取数据,对其进行一些处理,然后将其写入其他位置
我知道如何做所有这一切,除了“周期性”的部分。我知道如何触发一个路线使用石英或计时器。但当我使用这些部分已经采取,所以我不能改变身体了。
有什么建议吗?

o75abkj4

o75abkj42#

您可以使用计时器/石英开始计时,然后使用content enricherpolling consumer

//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);
      }
    }
}

相关问题