Camel 文件语言 SortBy 日期模式系统时间或文件名模式?
Camel File language SortBy date pattern system time or file name pattern?
我需要通过另一种方式对 ftp 目录进行排序,我正在使用 sortBy=file:modifed 选项。但是,这个最后修改时间不适合我的用例。有时超过 ftp 收到的文件会滞后或先于另一个文件。内容是时间序列敏感数据,文件名发布时带有时间戳。
示例:fileName1_2018-12-14_12-34-33.csv系统时间03:30:23
fileName2_2018-12-14-12-35-22.csv系统时间03:30:03
显然应该首先使用 fileName1,但是系统修改时间的一些方式表明首先使用 fileName2。以正确顺序创建的文件,然而,写入系统的顺序是乱序的。发生了一些疯狂?但底线是我需要在 fileName2 之前使用 fileName1。所以,我不能使用 sortBy=file:modified。
我正在考虑使用类似可能只是按字典顺序排序的东西。我正在查看 sortBy=date:file:yyyyMMdd;file:name 但无法确定日期模式是针对系统时间还是我可以将其用作文件模式?
我希望这是有道理的。
长话短说,sortBy 中使用的日期模式是文件名中的模式还是修改时间或系统时间?否则我想我可以简单地对词法进行排序。谢谢!!!
final String fromStr = String.format("%s://%s@%s:%s/%s?password=RAW(%s)&recursive=%s&stepwise=%s&useList=%s&passiveMode=%s&disconnect=%s"
+ "&move=.processed"
+ "&maxMessagesPerPoll=100"
+ "&eagerMaxMessagesPerPoll=false"
+ "&sortBy=file:modified"
//+ "&passiveMode=true"
+ "&sendEmptyMessageWhenIdle=false"
//+ "&stepwise=false"
+ "&delay=10000"
+ "&initialDelay=5000"
+ "&connectTimeout=10000"
, transport, username, host, port, path, password, recursive, stepwise, useList, passiveMode, disconnect);
排序依据file:modified是文件的时间戳。对于 FTP 文件,时间戳甚至不如普通文件精确,因为它依赖于 FTP 服务器列表操作,通常只有 returns 时间,仅以小时和分钟为单位。
在您的用例中,文件名本身包含时间戳,因此您应该按文件名排序,而不是修改文件。
我需要通过另一种方式对 ftp 目录进行排序,我正在使用 sortBy=file:modifed 选项。但是,这个最后修改时间不适合我的用例。有时超过 ftp 收到的文件会滞后或先于另一个文件。内容是时间序列敏感数据,文件名发布时带有时间戳。
示例:fileName1_2018-12-14_12-34-33.csv系统时间03:30:23 fileName2_2018-12-14-12-35-22.csv系统时间03:30:03
显然应该首先使用 fileName1,但是系统修改时间的一些方式表明首先使用 fileName2。以正确顺序创建的文件,然而,写入系统的顺序是乱序的。发生了一些疯狂?但底线是我需要在 fileName2 之前使用 fileName1。所以,我不能使用 sortBy=file:modified。
我正在考虑使用类似可能只是按字典顺序排序的东西。我正在查看 sortBy=date:file:yyyyMMdd;file:name 但无法确定日期模式是针对系统时间还是我可以将其用作文件模式?
我希望这是有道理的。
长话短说,sortBy 中使用的日期模式是文件名中的模式还是修改时间或系统时间?否则我想我可以简单地对词法进行排序。谢谢!!!
final String fromStr = String.format("%s://%s@%s:%s/%s?password=RAW(%s)&recursive=%s&stepwise=%s&useList=%s&passiveMode=%s&disconnect=%s"
+ "&move=.processed"
+ "&maxMessagesPerPoll=100"
+ "&eagerMaxMessagesPerPoll=false"
+ "&sortBy=file:modified"
//+ "&passiveMode=true"
+ "&sendEmptyMessageWhenIdle=false"
//+ "&stepwise=false"
+ "&delay=10000"
+ "&initialDelay=5000"
+ "&connectTimeout=10000"
, transport, username, host, port, path, password, recursive, stepwise, useList, passiveMode, disconnect);
排序依据file:modified是文件的时间戳。对于 FTP 文件,时间戳甚至不如普通文件精确,因为它依赖于 FTP 服务器列表操作,通常只有 returns 时间,仅以小时和分钟为单位。
在您的用例中,文件名本身包含时间戳,因此您应该按文件名排序,而不是修改文件。