首页 文章

如何“忽略”来自Apache Camel File Consumer的已获取交换

提问于
浏览
0

我有一个批处理文件使用者,它正在轮询许多不同进程将文件放到的公共目录 . 这些文件通过文件名上的guid“批处理”在一起 . 完成特定批处理后,应用程序将删除.done文件以触发camel文件使用者 .

我的问题是,我正试图找到一种可能“忽略”消息/交换的方法,这些消息/交换可能包含我不想处理的文件(即......不是我当前批次的一部分) .

另外,我希望“忽略”的交换不被camel处理(即..没有移动到.processed目录) .

我目前正在将消息过滤器看作是一种潜在的方式来做到这一点,虽然我不确定它是否会满足我的要求而不能处理 .

有什么建议?

1 回答

  • 1

    您可以在File组件上使用'include'或'antinclude'(或'exclude和'antexclude')参数,仅根据正则表达式或ant模式处理特定消息 . 未处理的文件根本不会被移动或触摸 .

    如果您需要一组比正则表达式或 Ant 模式更复杂的规则,您可能需要编写自己的自定义可插入过滤器,然后可以使用“filter”参数指定 .

    有关上述内容的详细信息,请参见此处:

    http://camel.apache.org/file2.html

相关问题