Как сделать фоновую обработку в ASP без использования службы Windows - PullRequest
1 голос
/ 11 марта 2011

Сценарий У меня есть веб-приложение, которое требует некоторых расчетов и обработки данных. Эта работа - длительная работа (несколько часов). Работа инициирована пользователем.

Требование.

  1. Пользовательские клики по данным процесса.

  2. Некоторые функции вызываются для начала обработки данных.

  3. Обработка данных выполняется часами.

  4. Пользователь получает отзыв о процентах выполненных работ и т. Д.

  5. Даже если пользователь выходит из системы, а затем снова входит в систему, он должен получить этот отзыв.

Требование несколько похоже на Spiceworks. Где он работает в фоновом режиме, чтобы обнаружить устройства / компьютеры в сети, и пользователь уведомляется на своей странице о прогрессе. Но spicework использует службу Windows. Мы не хотим, чтобы мы работали с Windows.

Теперь вопрос.

  1. Что если пользователь закроет страницу, будет ли задача по-прежнему выполняться в фоновом режиме.

  2. Эта задача должна быть полностью выполнена. Если завершение между выходами не будет иметь никакого значения.

  3. Как на самом деле спроектировать этот длительный процесс. В среде ASP.Net.

  4. Также есть способ показать всех / того же пользователя, который входит в статус обработки.

1 Ответ

1 голос
/ 11 марта 2011

Есть несколько способов запланировать работу в фоновом режиме. Вы можете использовать задание SQL, службу Windows или запланированные задачи.

Я бы сконструировал это так:

Со своей страницы ASP.NET - я буду хранить указание в базе данных для запуска задания, которое затем будет выбрано запланированным заданием. Эта задача - не что иное, как консольное приложение, которое извлекает данные из базы данных, чтобы увидеть, какие задачи пользователь инициировал, а затем выполняет следующее действие. Для завершения этого процесса вы можете сохранить эти значения из вашей работы в БД, и ваша страница получит доступ к дБ, чтобы показать его пользователю в любое время, когда они заходят на страницу.

Вот еще один поток, где обсуждаются долгосрочные задачи в IIS: Можно ли использовать потоки для выполнения длительных заданий в IIS?

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