使用 apache camel 只处理修改过的文件
Processing only modified files using apache camel
我有新的要求要使用 apache camel 来实现。
- 处理文件而不移动它
- 仅当文件被修改时才处理文件
- 可以再次处理同一个文件
- 它不应该处理新文件。
由于我是 Apache Camel 的新手,我探索了文件组件的功能并获得了一些示例,并且能够使用以下代码实现前 3 点。
from("file:C://inputFolder?idempotentKey=${file:name}-${file:modified}&noop=true")
.to("file:C://outputFolder");
然而无法做到第四点。上面的代码获取刚刚创建的新文件(意思是创建日期和修改日期相同)。
有人可以帮助我实现第 4 点(即它不应该在该目录中获取新文件)
正如我所见,无法查看文件在 Camel 中的创建时间。这里可能的解决方法是使用重命名方法以及 antInclude
选项,例如
from("file:C://inputFolder?idempotentKey=${file:name}-${file:modified}&noop=true&antInclude=*.modified")
.to("file:C://outputFolder");
在这种情况下,需要创建新文件,使用另一个扩展名,例如myfile.created
,然后在第一次修改后重命名为myfile.modified
从 Camel 3.0 开始您可以使用 file-watch Component. The solution can be similar to Create snapshot of file when modified 示例。
from("file-watch:C://inputFolder?events=MODIFY&recursive=false")
.to("file:C://outputFolder");
我有新的要求要使用 apache camel 来实现。
- 处理文件而不移动它
- 仅当文件被修改时才处理文件
- 可以再次处理同一个文件
- 它不应该处理新文件。
由于我是 Apache Camel 的新手,我探索了文件组件的功能并获得了一些示例,并且能够使用以下代码实现前 3 点。
from("file:C://inputFolder?idempotentKey=${file:name}-${file:modified}&noop=true")
.to("file:C://outputFolder");
然而无法做到第四点。上面的代码获取刚刚创建的新文件(意思是创建日期和修改日期相同)。
有人可以帮助我实现第 4 点(即它不应该在该目录中获取新文件)
正如我所见,无法查看文件在 Camel 中的创建时间。这里可能的解决方法是使用重命名方法以及 antInclude
选项,例如
from("file:C://inputFolder?idempotentKey=${file:name}-${file:modified}&noop=true&antInclude=*.modified")
.to("file:C://outputFolder");
在这种情况下,需要创建新文件,使用另一个扩展名,例如myfile.created
,然后在第一次修改后重命名为myfile.modified
从 Camel 3.0 开始您可以使用 file-watch Component. The solution can be similar to Create snapshot of file when modified 示例。
from("file-watch:C://inputFolder?events=MODIFY&recursive=false")
.to("file:C://outputFolder");