如何按特定顺序加载文件

时间:2013-08-12 10:19:22

标签: activepivot

我想知道如何按特定顺序加载某些文件。例如,我想根据时间戳加载我的文件,以确保以正确的顺序重放后续数据更新。

假设我有两种类型的文件:交易信息文件和风险文件。

我想加载T1_Info.csv,然后加载T1_Risk.csv,T2_Info.csv,T2_Risk.csv ......

我试图在Confluence上实现一个比较器,但似乎loadInstructions文件具有优先级。它将独立订购Info文件和风险文件。 (加载T1_Info.csv,T2_Info.csv,然后加载T1_Risk.csv,T2_Risk.csv ..)

我是否必须实现自定义文件加载器,或者是否可以使用AP配置?

1 个答案:

答案 0 :(得分:1)

根据加载指令加载文件 com.quartetfs.tech.store.csv.impl.CSVDataModelFactory.load(List<FileLoadDescriptor>)。您收到的FileLoadDescriptor列表是直接从加载指令文件创建的。

您可以做的是创建一个包含2个条目的简单指令文件,一个用于交易信息,另一个用于风险。因此,将使用两个项目的列表调用CSVDataModelFactory的自定义实现。在您的自定义实现中,您扫描文件所在的目录,按照您希望它们被解析的顺序对它们进行排序,并使用您从目录扫描创建的FileLoadDescriptor列表调用super.load()

如果您还要在此文件夹中加载以后放置的文件,则必须在加载说明中添加一行,该行将匹配所有文件并使super.load()实现创建目录监视器为此(你应该覆盖createDirectoryWatcher(),以便在调用load时不看文件夹中已经存在的文件。