我們有一個應用程序從特定文件夾讀取文件,處理它們並將其複製(某些業務邏輯)到另一個文件夾。從文件系統讀取文件時的併發性
這裏的問題是,當有大量的文件需要處理時,運行一個應用程序的單個實例或單個線程不再足以處理這些文件。
我們的一個方法是啓動應用程序的多個實例(我覺得這種方法有問題,建議我有一個替代方案)。
產生線程或啓動應用程序的多個實例時,應該注意,如果線程讀取一個文件並開始處理它,另一個線程就不應該選取它。
我們正試圖通過其與文件夾在文件名列表中選擇一個數據庫表來實現這一,這樣,當一個線程首先讀取的文件名的表,我們將狀態在改變- 進程或完成並悲觀鎖定表,以便其他線程無法讀取它。
有沒有更好的解決方案?
您需要確保磁盤子系統不是您的瓶頸。運行多個進程或線程將有助於CPU或外部服務,例如數據庫是你的瓶頸。 –