Мы должны отслеживать изменения в файле удаленной системы, который мы получаем через FTP, SMB.
У нас нет доступа по SSH к удаленной системе / ОС. Наш единственный взгляд на удаленную систему - это то, что нам позволяют видеть FTP или Samba.
Что мы делаем сегодня:
периодически сканирует весь каталог, создает представление в памяти для выполнения наших задач, а затем объединяет его с тем, что имеется в базе данных.
Что бы мы хотели сделать:
Возможность определить, изменился ли каталог, и, следовательно, требуется ли синтаксический анализ. В идеале, никогда не нужно делать полный анализ. Мы не хотим слишком полагаться на возможности ОС (inode) ..., поскольку она может измениться с установки на другую.
Основная цель : этот процесс начинает замедляться, когда объем данных очень велик. Только несколько% этой даты являются новыми и должны быть проанализированы. Как разобрать и добавить в нашу базу данных только эту часть?
Ссылки, которые мы обсуждаем в данный момент:
- Проверка размера папки
- с использованием контрольной суммы в файле
- Проверка последней даты изменения папки / файла
Что мы действительно хотим:
Некоторая информация и лучшие практики, потому что эта проблема представляет собой довольно простую вещь, и ее следовало уже обсудить, и мы не хотим в конечном итоге сделать что-то слишком сложное в этом вопросе.
Заранее спасибо, куча коллег-разработчиков; -)
Мы используем стек java / spring / hibernate, но я не думаю, что это имеет здесь большое значение.
Редактировать : в основном мы имеем доступ к FTP-серверу или эквивалентному ему. Локальная копия не вариант, так как объем данных слишком велик.