Итак, я создаю программу индексации клиентов для своей компании, и у меня в основном все закодировано и работает, за исключением того, что я хочу, чтобы программа индексации отслеживала указанные пользователем индексированные каталоги и обновляла базовое хранилище данных на лету, чтобы устранить необходимость в полной индексации. довольно часто.
Я закодировал все в WPF/C# с базовой базой данных SQLite, и я уверен, что наблюдатели за папками будут хорошо работать при «небольших нагрузках», но проблема в том, что мы используем TortoiseSVN, и когда пользователь выполняет обновление SVN и т. д., что создает тяжелая файловая загрузка обновлений FileSystemWatcher и SQLite просто не справляется (даже с максимальным размером буфера). В основном я делаю вставку в базу данных каждый раз, когда происходит событие наблюдателя.
Итак, мой главный вопрос: есть ли у кого-нибудь предложения о том, как реализовать этот файловый наблюдатель для обработки таких больших нагрузок?
Вот некоторые мысли, которые у меня были: (1) Создайте промежуточную коллекцию для всех запросов и используйте таймер и поток для вставки данных позже (2) Запишите запросы в файл и позже используйте поток таймера для вставки.
Помощь....