У нас есть приложение, которое считывает файлы из определенной папки, обрабатывает их и копирует (некоторая бизнес-логика) в другую папку.
Проблема здесь в том, что существует очень большое количество файлов для обработкизапуск одного экземпляра приложения или одного потока больше не достаточен для обработки этих файлов.
Один из подходов, который мы используем для этого, заключается в запуске нескольких экземпляров приложения (я чувствуючто-то не так с этим подходом. Предложите мне альтернативу, если таковой имеется.)
Создание потоков или запуск нескольких экземпляров приложения, следует позаботиться о том, чтобы, если поток считывает один файл и начинает его обработкудругая нить не должна его поднимать.
Мы пытаемся достичь этого , имея таблицу базы данных со списком имен файлов в папке , поэтому, когда поток впервые читает таблицу с именем файла, мы изменимсостояние в процессе или завершено и пессимистическая блокировка таблицы, чтобы другие потоки не могли ее прочитать.
Есть ли лучшее решение проблемы?