Как реализовать фоновую обработку для веб-сайта ASP.Net MVC в среде виртуального хостинга? - PullRequest
14 голосов
/ 09 февраля 2011

Я занимаюсь разработкой своего первого веб-приложения с использованием ASP.Net MVC, и я нахожусь в ситуации, когда мне бы хотелось, чтобы фоновая служба обрабатывала уведомления о состоянии вне приложения, в отличие от системы репутации / бейджей в стеке.*

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

Мне не нужно напрямую общаться с фоновым работником, так как я буду добавлять записи уведомлений в таблицу базы данных с помощьюстолбец установлен в "необработанное" состояние.Затем работник будет регулярно сканировать таблицу и обрабатывать то, что готово.

Спасибо за ваш совет.

Ответы [ 4 ]

7 голосов
/ 18 февраля 2011

Вы пробовали с quartz.net ?Я думаю, что это может соответствовать вашим потребностям.

5 голосов
/ 18 февраля 2011

также взгляните на это Имитация службы Windows с использованием ASP.NET для выполнения запланированных заданий статья.

это объясняет хороший способ планирования операций без внешней зависимости.

Идея состоит в том, чтобы использовать тайм-аут кэша для управления расписанием. Я успешно реализовал его в проекте, который требовал регулярной очистки временных файлов. Эта очистка немного сложна, поэтому мы перемещаем эту чистую операцию в запланированное задание (используя кэш asp.net), чтобы избежать необходимости развертывания запланированного задания или пользовательской программы.

3 голосов
/ 11 февраля 2011

Чтобы ответить на вопрос, будет ли GoDaddy поддерживать отдельный сервис, вы должны спросить его.

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

  1. Иметь защищенную страницу, целью которой является выполнение фоновой работы. Вы могли бы запланировать задачу на машине под вашим контролем, которая обращается к этой веб-странице через заданные интервалы.
  2. Используйте вариант ответа из фонового рабочего потока от @safi. Ваш фоновый рабочий поток может проверить, что другой уже обрабатывает, и остановить его, чтобы одновременно работал только один экземпляр.
1 голос
/ 17 мая 2012

Если вам достаточно только одной фоновой задачи, используйте WebBackgrounder И это статья с подробным объяснением.

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