Я все еще новичок в Ruby, поэтому надеюсь, что вы поможете.У меня есть приложение Ruby on Rails, которому нужно смотреть конкретный каталог «Dir A», в который я продолжаю добавлять текстовые файлы.Как только появляется новый файл, его необходимо обработать в CSV-файл, который затем появляется в каталоге tmp, прежде чем присоединиться к пользователю, и исчезает из tmp после того, как файл переходит в ActiveStorage, сохраняя исходный файл txt в «Dir A».на ограниченное количество времени.
Теперь я использую гем filewatcher для просмотра "Dir A", однако мне нужно, чтобы он запускался при запуске сервера и продолжал работать в фоновом режиме.Я понимаю, что мне нужно демонизировать процесс, но как я могу сделать это из файлов * .rb, а не из терминала?Я использую Threads, но я не уверен, что это лучшее решение ...
У меня также есть следующие проблемы: - как обрабатывать файлы, которые уже появились в папке до запуска сервера?- filewatcher, похоже, не получает другой новый файл, пока он еще обрабатывает предыдущий, и потоки, похоже, не помогают с этим - что бы вы посоветовали, чтобы быть лучшим способом отслеживания обработанных файлов - базы данных илипереименование / копирование файлов в другую папку, или некоторые глобальные переменные или, может быть, есть что-то еще?Мне нужно знать, какие файлы обрабатываются, поэтому я не повторяю этот процесс особенно в тех случаях, когда мне нужно запланировать перезапуски FileWatcher из-за его снижающейся производительности (документация FileWatcher гласит, что лучше всего перезапустить процесс, если он долго выполнялся)
Извините, что засыпаю вопросами, но мне нужно какое-то руководство, может быть, я пропустил лучший драгоценный камень, я посмотрел на охранный камень, но я не совсем уверен, как он работает, и Filewatcher показался проще.