有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    因为noop=true,所以在使用camel路由的java进程启动后,文件仍然保留在源文件夹中。当您重新启动java程序时,它什么都不记得,因此会再次轮询源文件夹中的所有文件。如果路由持续运行且未重新启动,则noop=true会有所帮助

    可以通过删除noop来避免这种情况,这样驼峰路由会将处理过的文件从源文件夹移动到一个文件夹。camel文件夹或您指定的任何文件夹

    解决方案取决于你如何使用它。如果严格要求不要从源文件夹中移动文件,那么您需要在使用目标文件夹的用户端记住它,这样您就不会再次处理相同的文件,或者不应该重新启动路由