ApacheCamel:当我作为独立java项目运行时轮询旧文件。有没有办法只轮询新文件
我需要将文件从本地特定文件夹位置传输到其他位置。我使用ApacheCamel作为一个独立的项目,下面是我的代码
from(file:<location>?noop=true).to(file:<location>)
每当我作为一个Java项目运行时,它也会不断轮询上一次运行时移动的旧文件。有没有办法只轮询新文件,而且我无法记录文件传输
例如: 第一次运行时:源目录
Folder1/image1
from(file:Folder1?noop=true).to(file:Folder2)
将image1移动到Folder2位置,image1将保留在Folder1中。
现在我将再次运行java文件,并在源目录中添加了一个文件image2
FFolder1/image1 & image2
现在,在本例中,我只希望处理image2文件,但代码也要处理image1
# 1 楼答案
因为noop=true,所以在使用camel路由的java进程启动后,文件仍然保留在源文件夹中。当您重新启动java程序时,它什么都不记得,因此会再次轮询源文件夹中的所有文件。如果路由持续运行且未重新启动,则noop=true会有所帮助
可以通过删除noop来避免这种情况,这样驼峰路由会将处理过的文件从源文件夹移动到一个文件夹。camel文件夹或您指定的任何文件夹
解决方案取决于你如何使用它。如果严格要求不要从源文件夹中移动文件,那么您需要在使用目标文件夹的用户端记住它,这样您就不会再次处理相同的文件,或者不应该重新启动路由