2013-03-13 3 views
1

Мы используем SOLR для поиска автозаполнения в нашем веб-приложении. У нас есть ночной процесс, который добавляет кучу данных в нашу базу данных, и как только этот процесс заканчивается, нам необходимо импортировать эти данные из базы данных в наш сервер SOLR.Автоматизация пошагового процесса из приложения MVC

В настоящее время этот процесс импорта выполняется вручную в следующей последовательности:

  1. Проверьте ondeck SOLR сервер простаивает
  2. Говори ondeck сервер, чтобы сделать полный импорт данных, состояние сервера «занято»
  3. Опрос сервера ondeck так часто, и когда он заканчивается, статус возвращается в режим ожидания.
  4. Смените сервер ondeck (с новой информацией) на живой сервер SOLR.
  5. Заполните храповую процедуру в нашей базе данных.

У нас есть страница административных инструментов в нашем веб-приложении. То, что я хочу сделать, это поместить на эту страницу кнопку, которая запускает этот процесс (через вызов AJAX в нашем веб-приложении) и сообщает пользователю, что процесс был запущен. Весь процесс занимает около часа, чтобы сделать это, я не могу запустить вызов AJAX в течение часа, а затем вернуться на страницу, чтобы пользователь сказал, что процесс завершен.

Мне нужно это сделать асинхронно. Процесс должен быть запущен, как только он стартует, он информирует пользователя о том, что он начат, а затем приложение продолжает ждать на каждом этапе процесса, а затем вызывает следующий шаг, пока он не завершится. Как выглядит код в MVC 4, чтобы это произошло? Я смотрел учебники по MSDN по async и await, но я немного смущен.

ответ

0

Я могу предложить вам взглянуть на Websokets (или длинный полинг, если вам нужно поддерживать старые браузеры). Существует действительно хорошая библиотека под названием SignalR, которая будет обрабатывать весь сложный персонал для вас. Он использует websockets, если он поддерживается браузером клиента или автоматически переключается на длительный сеанс, если это не так. Он имеет хорошие documentation и множество расширений в Интернете.

Смежные вопросы