我是骆驼新手。让我解释一下我的业务需求,我在文件夹A中有大约10个文件。特别是,这10个文件将被处理,并执行业务逻辑,并将文件移动到文件夹B中。每个文件分别放置一个已完成的文件。我需要处理来自文件夹B的文件,以便进行下一次业务操作。但我需要开始这个过程时,只有当所有10个已完成的文件被放置。在完成前一个过程中的所有10个文件之前,我不应该开始这个过程。如何在骆驼身上做到这一点。
注意:我不想在我的第二条路线上使用任何cron。10文件是假设。它可能是动态的
提前感谢
发布于 2015-07-21 06:56:01
在继续处理第二部分之前,您可以使用集料器来聚合已处理的文件。
您将得到类似于以下内容的内容:
<route>
<from uri="file://<Folder A>" />
<!-- your business logic -->
<aggregate strategyRef="aggregatorStrategy" ...>
...
</aggregate>
<!-- here goes the business logic used to poll files from Folder B -->
</route>发布于 2015-07-22 13:35:36
也许您可以使用"alldone“文件:
<route>
<from uri="file://<Folder A>?scheduler=<particular time>" />
<!-- your business logic part 1-->
<to uri="file://<Folder B>" />
<choice>
<when>
<simple>${exchangeProperty.CamelBatchComplete}</simple>
<setBody><constant>null</constant></setBody>
<setHeader headerName="CamelFileName">
<simple>alldone</simple>
</setHeader>
<to uri="file://<Folder B>" />
</when>
<choice>
</route>
<route>
<from uri="file://<Folder B>?doneFileName=alldone" />
<!-- your business logic part 2-->
</route>https://stackoverflow.com/questions/31531027
复制相似问题