Рекомендации по проектированию, необходимые для приложения синхронизации файлов на основе многопоточной очереди - PullRequest
0 голосов
/ 31 июля 2011

Я разрабатываю приложение с использованием C #, которое должно синхронизировать файлы с компьютера пользователя с областью удаленного хранения.

Я думаю, что приложение должно иметь следующие ключевые модули:

  • Механизм обработки
  • Пул потоков
  • Диспетчер очереди
  • Просмотр файловой системы

Как только в папке обнаружен новый файл, ФайлSystem Watch должна иметь возможность помещать рабочий элемент в Queue Manager.Диспетчер очереди должен быть в состоянии сохранить элемент на каком-либо постоянном носителе, так что даже если не обрабатывается обработчик, мы ничего не пропустим.

Теперь, как только что-то помещается в очередь, выполняется обработкаДвигатель должен получить уведомление.Он должен использовать пул потоков, чтобы начать текущую работу.Администратор очередей должен иметь возможность устанавливать статус рабочего элемента как «в процессе обработки» или «выполнено».

Пользователь должен иметь возможность установить, сколько одновременных потоков должно использоваться для обработки.

Теперь мне нужна помощь в определении правильных API ... или некоторых компонентов с открытым исходным кодом.

Для пула потоков я думаю об использовании Smart Thread Pool (http://www.codeproject.com/KB/threads/smartthreadpool.aspx).

Для отдыха мне нужна помощь.

Кроме того, любые рекомендации по улучшению стиля приложения приветствуются.

Cheers;

1 Ответ

1 голос
/ 31 июля 2011

Я думаю, вы можете сэкономить время, используя это http://msdn.microsoft.com/en-us/sync/bb887623

Подробнее:
http://msdn.microsoft.com/en-us/library/bb902860.aspx

РЕДАКТИРОВАТЬ - после комментария о требовании REST sotrage:

вы можете использовать платформу и реализовать / добавить пользовательские провайдеры для учета этого ... см. http://msdn.microsoft.com/en-us/library/ee617372.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...