Java Camel | RouteBuilder何时对更新的文件执行?
我设置了一条基本路线:Java Camel | RouteBuilder何时对更新的文件执行?,java,routes,apache-camel,Java,Routes,Apache Camel,我设置了一条基本路线: RouteBuilder路由=新建RouteBuilder(){ @凌驾 public void configure()引发异常{ from(“文件:OrderSystem?fileName=orders.txt&noop=true”) .split(body().tokenize(“\n”)) .流程(订单工厂) .to(“jms:queue:inqueue”); } }; 当我使用添加的路由运行ctxt.start()时,文件中的数据立即位于我的ActiveMQ队列
RouteBuilder路由=新建RouteBuilder(){
@凌驾
public void configure()引发异常{
from(“文件:OrderSystem?fileName=orders.txt&noop=true”)
.split(body().tokenize(“\n”))
.流程(订单工厂)
.to(“jms:queue:inqueue”);
}
};
当我使用添加的路由运行ctxt.start()
时,文件中的数据立即位于我的ActiveMQ队列中。我有一个Thread.sleep(999999)
以确保Camel保持活动状态,但即使如此,我的orders.txt
文件也会用新数据更新,不再向队列中添加任何内容。如何将文件中的更新数据路由到队列?我需要执行什么来请求数据或观察更改
(如何使用camel删除文件中的数据,而不是文件本身?)
感谢您的解释。从中,参数noop
的说明如下
如果为true,则不会以任何方式移动或删除文件。这个选项是
适用于只读数据或ETL类型需求如果noop=true,
Camel还将设置幂等元=true,以避免使用相同的值
文件一遍又一遍
实际上,您的路由是每500毫秒扫描一次文件夹(默认延迟值),然后查找名为orders.txt
的文件。但是默认的idempotent
设置(通过noop
打开)会阻止您拾取“相同”文件
要实现此目标,需要调整参数idempotentKey
,告诉Camel如何确定文件是否正在处理(默认设置为文件路径)。e、 g.同时使用文件名和大小idempotentKey=${file:name}-${file:size}
从中,参数noop
的描述如下:
如果为true,则不会以任何方式移动或删除文件。这个选项是
适用于只读数据或ETL类型需求如果noop=true,
Camel还将设置幂等元=true,以避免使用相同的值
文件一遍又一遍
实际上,您的路由是每500毫秒扫描一次文件夹(默认延迟值),然后查找名为orders.txt
的文件。但是默认的idempotent
设置(通过noop
打开)会阻止您拾取“相同”文件
要实现此目标,需要调整参数idempotentKey
,告诉Camel如何确定文件是否正在处理(默认设置为文件路径)。e、 g.同时使用文件名和大小idempotentKey=${file:name}-${file:size}