我们有一个应用程序从特定文件夹读取文件,处理它们并将其复制(某些业务逻辑)到另一个文件夹。从文件系统读取文件时的并发性
这里的问题是,当有大量的文件需要处理时,运行一个应用程序的单个实例或单个线程不再足以处理这些文件。
我们的一个方法是启动应用程序的多个实例(我觉得这种方法有问题,建议我有一个替代方案)。
产生线程或启动应用程序的多个实例时,应该注意,如果线程读取一个文件并开始处理它,另一个线程就不应该选取它。
我们正试图通过其与文件夹在文件名列表中选择一个数据库表来实现这一,这样,当一个线程首先读取的文件名的表,我们将状态在改变- 进程或完成并悲观锁定表,以便其他线程无法读取它。
有没有更好的解决方案?
您需要确保磁盘子系统不是您的瓶颈。运行多个进程或线程将有助于CPU或外部服务,例如数据库是你的瓶颈。 –