如何删除Camel中的空目录



我看到这里有一个类似的问题,但我不能对此发表评论来问我的问题,因为我没有足够的声誉。

我也有同样的问题,在从其中删除文件后,会留下一个空目录。我现在有一个bean来检查目录,如果它是空的,就会删除它。

from("file://"+inputLocation+"?initialDelay=5000&delay=2000&recursive=true&delete=true")
        .process(databaseProcessor())
.recipientList(simple("file://"+location+"/${in.header."+AppConstants.DIRECTORYLOCATION+"}"))
.to("bean:folderCheck?method=deleteEmptyDirectories()");

bean:folderCheck有一个方法,如果目录为空,该方法将删除目录。据我所知,在路由完成后,将从路由的部分删除,因此将bean:folderCheck标记为目前无用。我想找到一种方法,在目录为空的时候运行它。

有没有一种方法可以在这个路由或另一个路由中调用这个bean,而不是定期轮询以查看目录是否为空?

您可以在路线完成后使用"完成时"来完成一些工作。

  • http://camel.apache.org/oncompletion.html

然后你可以从那里调用bean。只需注意完成时并行运行(使用另一个线程)。

请注意,从Camel 2.14开始,完成时默认不以并行模式运行,但您可以很容易地再次打开它。

最新更新