我有一个批处理文件使用者,它正在轮询许多不同进程将文件放到的公共目录 . 这些文件通过文件名上的guid“批处理”在一起 . 完成特定批处理后,应用程序将删除.done文件以触发camel文件使用者 .
我的问题是,我正试图找到一种可能“忽略”消息/交换的方法,这些消息/交换可能包含我不想处理的文件(即......不是我当前批次的一部分) .
另外,我希望“忽略”的交换不被camel处理(即..没有移动到.processed目录) .
我目前正在将消息过滤器看作是一种潜在的方式来做到这一点,虽然我不确定它是否会满足我的要求而不能处理 .
有什么建议?
1 回答
您可以在File组件上使用'include'或'antinclude'(或'exclude和'antexclude')参数,仅根据正则表达式或ant模式处理特定消息 . 未处理的文件根本不会被移动或触摸 .
如果您需要一组比正则表达式或 Ant 模式更复杂的规则,您可能需要编写自己的自定义可插入过滤器,然后可以使用“filter”参数指定 .
有关上述内容的详细信息,请参见此处:
http://camel.apache.org/file2.html