我想知道如何按特定顺序加载某些文件。例如,我想根据时间戳加载我的文件,以确保以正确的顺序重放后续数据更新。
假设我有两种类型的文件:交易信息文件和风险文件。
我想加载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配置?
答案 0 :(得分:1)
根据加载指令加载文件
com.quartetfs.tech.store.csv.impl.CSVDataModelFactory.load(List<FileLoadDescriptor>)
。您收到的FileLoadDescriptor
列表是直接从加载指令文件创建的。
您可以做的是创建一个包含2个条目的简单指令文件,一个用于交易信息,另一个用于风险。因此,将使用两个项目的列表调用CSVDataModelFactory
的自定义实现。在您的自定义实现中,您扫描文件所在的目录,按照您希望它们被解析的顺序对它们进行排序,并使用您从目录扫描创建的FileLoadDescriptor列表调用super.load()
。
如果您还要在此文件夹中加载以后放置的文件,则必须在加载说明中添加一行,该行将匹配所有文件并使super.load()
实现创建目录监视器为此(你应该覆盖createDirectoryWatcher()
,以便在调用load
时不看文件夹中已经存在的文件。