У меня есть сервер, который скоро начнет получать файлы.Файлы будут помещены в папку.Я должен читать файлы и сохранять данные в моем БД одновременно.Могу ли я просто использовать FileSystemWatcher, чтобы следить за папкой, а затем обрабатывать файлы, когда наблюдатель находит новый файл?Или я должен также использовать MSMQ, чтобы файлы помещались в очередь после того, как наблюдатель найдет новый файл?Излишне ли использовать MSMQ?MSMQ - это хорошая вещь, но пока наблюдатель заботится только об одном файле за раз, я не слишком уверен, действительно ли необходимо использовать MSMQ.Будет ли FileSystemWatcher достаточно, чтобы гарантировать, что одновременно обрабатывается только один файл?Если процесс файла не удался, файл все равно будет в папке, поэтому он не будет потерян.Поэтому в основном мне приходится выбирать между этими двумя моделями:
Входящий файл -> Файл помещается в папку -> Наблюдатель видит файл -> Код, стоящий за наблюдателем, считывает файл и сохраняет его в БД -> Watcher возвращается кпапка для ожидания нового файла.
или
Входящий файл -> Файл помещен в папку -> Watcher видит файл -> Watcher помещает сообщение (содержит путь к файлу) вочередь и возвращается к просмотру папки -> QueueWatcher видит сообщение, считывает файл с пути и сохраняет данные в БД -> QueueWatcher перезапускается для прослушивания очереди на наличие новых сообщений.