Как создать поток, который все время работает в фоновом режиме на веб-сайте .net? - PullRequest
5 голосов
/ 05 февраля 2009

Я намерен создать небольшой веб-сайт, который будет опрашивать сторонний веб-сервис, скажем, каждые 15 минут, сохранять собранные данные в БД и отображать результаты через веб-страницы.

Я хочу, чтобы опрос проводился 24 часа в сутки, когда кто-либо посещает веб-сайт или нет.

Я знаю, что мог бы создать отдельное приложение, которое могло бы работать на сервере, чтобы сделать это, но есть чистый способ включить это в код веб-сайта. Мне нужно что-то, что было бы легко развернуть на дешевом стороннем хостинг-сайте.

Любые указатели в правильном направлении будут приветствоваться.

Спасибо

Ответы [ 2 ]

5 голосов
/ 05 февраля 2009

Добавьте файл global.asax к проекту вашего сайта.

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

Вы можете запустить свою ветку здесь.

Кроме того, я рекомендую установить темы в фоновый режим, чтобы они могли исчезать при закрытии веб-приложения.

System.Threading.Thread.CurrentThread.IsBackground = true;
3 голосов
/ 05 февраля 2009

В идеале для этого нужно создать службу Windows. Другое предложение создания потоков при запуске приложения - это нормально, пока ваш веб-сервер не будет перезагружен.

В этот момент ваше фоновое задание не будет запущено, пока следующий человек не заходит на сайт. При использовании службы Windows фоновые задачи снова запускаются, как только сервер загружается.

Создание службы Windows с использованием .net довольно просто, безусловно, намного проще, чем было раньше .net:

http://www.codeproject.com/KB/system/WindowsService.aspx

Конечно, вы могли бы выдумать другое решение, запустив что-то, что запустит ваш сайт после загрузки сервера, но это хакерство, и «правильным» способом является служба Windows.

Edit:

Это научит меня правильно читать вопрос, не обнаружив требования о работе на дешевом общем хосте. Возможно, в этом случае вы можете надеяться на другое решение, поскольку подход службы Windows практически наверняка невозможен.

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