file - Camel 文件组件 - sortBy 选项不起作用
问题描述
我们使用的是 Camel 2.22.0,由于我们有一些限制,我们需要按名称轮询文件。每个文件都必须按名称顺序处理。我们在一个名为“FOO_BAR_SEQ_NUM_0001_0200_horadate.zip”的目录中有 200 个文件(可能超过 600 个),
'FOO_BAR_SEQ_NUM_0002_0200_horadate.zip',[...],
'FOO_BAR_SEQ_NUM_0200_0200_horadate.zip'
文件在前一天由我们的客户放在这个文件夹中,没有任何检查(机器人通过 ftp 将文件放在我们的文件夹中)
我们发现,当文件以良好的顺序保存时,修改日期是按时间顺序排列的,它工作正常。但在另一种情况下,Camel 按日期自行排序,它对我们不起作用。
我们的CustomGenericFileFilterProcessor(实现GenericFileFilter)检查文件是否是好文件,通过将其与文件的文件夹列表进行比较,如果不是,则返回false,并且将轮询并检查下一个文件。
我们在 URI 中尝试了不同的选项,例如 preSort=true、sortBy=file:name、eaggerMessagePerPoll=false,但都没有奏效。
这是我们当前的 URI:
file:////nas/folder/CODE_NAME/TOMCAT-BASE?delete=true&eagerMaxMessagesPerPoll=false&filter=%23fileStrategy&flatten=true&moveFailed=%2Fnas%2Ffolder%2FCODE_NAME%2FKO&readLock=rename&recursive=true&sortBy=file%3Aname
目前,我们在文件夹中有这些文件
'FOO_BAR_SEQ_NUM_0019_0200_horadate.zip',
'FOO_BAR_SEQ_NUM_0020_0200_horadate.zip',
'FOO_BAR_SEQ_NUM_0021_0200_horadate.zip',[...],
'FOO_BAR_SEQ_NUM_0200_0200_horadate.zip'
但是 Camel 总是返回“FOO_BAR_SEQ_NUM_0090_0200_horadate.zip”作为第一个(按日期),我们需要循环并跳过,直到 Camel 找到“FOO_BAR_SEQ_NUM_0019_0200_horadate.zip”。
我们不明白为什么 'sortBy=fine:name' 在我们的案例中不起作用。
提前致谢。问候
解决方案
推荐阅读
- c# - 重新定位图表点标签
- django - 从表单集中的 ModelChoiceField 管理 Django 模型实例的另一种方法
- python - 如何使这两种关于在笛卡尔积上循环的替代方案减少冗余?
- css - 无效选择器中的 Angular 5 警告';
- r - as.Date 返回 N/A,字符串为 %d/%m/%Y,& 语言环境解决方案不会更改 R 中的输出
- entity-framework-6 - 在同一 DbContext 中设置选择性审计
- c++ - QT qScriptConnect 不工作
- singularity-container - 错误:在构建奇点容器时,在未初始化的配置子系统上调用了singularity_config_get_value
- python - 将带有注释的签名添加到扩展方法
- reactjs - 构造函数中的数组道具为空