2

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

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

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

我试图实现一个比较器,正如在 Confluence 上所说的那样,但似乎 loadInstructions 文件具有优先级。它将独立地对信息文件和风险文件进行排序。(加载 T1_Info.csv、T2_Info.csv 和 T1_Risk.csv、T2_Risk.csv..)

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

4

1 回答 1

1

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

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

如果您还想加载将来放置在此文件夹中的文件,则必须在加载指令中添加一行,该行将匹配所有文件,并使super.load()实现为其创建目录观察程序(然后您应该覆盖调用createDirectoryWatcher()时不查看文件夹中已经存在的文件load)。

于 2013-08-13T09:53:39.127 回答