我有一个 ac# 进程,它使用 TPL 对队列进行并行处理。在处理完每条记录后,我想为每条处理的记录 ID 建立一个物理记录,这样如果处理失败或中断,我可以确保不再处理该记录。必须只处理一次记录。
我尝试将记录 ID 序列化为一个简单的文本文件和一个 Sqlite 表。在这两种情况下,保存这些小记录 ID(Guid)的时间占记录本身总处理时间的 50%。我什至尝试过使用开放的 Sqlite 连接和参数化的插入查询来进行插入,所以我没有打开/关闭数据库文件,也没有更好的办法。
我的问题是,我怎样才能以持久的方式维护一个 Guid 列表(可能是 1000-2000 个),这样如果我的进程死了,我会保存它们,以便我可以从中断的地方继续?只要速度快,我愿意尝试任何事情,并且如果服务器重新启动或进程被终止,我仍然会在那里。
有任何想法吗?