2010-09-15 2 views
3

Мне нужен надежный способ одновременного запуска 10 различных задач. Например, первая будет отправлять электронные письма, а следующая - очищать строки из определенной таблицы ... так далее.Что такое надежный способ выполнения многозадачных задач в ASP.NET MVC2

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

Я видел this technique, которые побуждают вас регистрировать объекты кеша. Поскольку приложение запускает обратный вызов, когда истекает срок действия кэшированного элемента, тогда можно запустить любой код, чтобы имитировать поведение потоков. Кажется, немного Микки Маус.


Я думаю, мои вопросы является , что это правильный способ на неопределенный срок выполнения фоновых задач в приложениях ASP.NET MVC2?

ответ

1

Для этого я использовал quartz.net, и это получилось довольно хорошо.

+0

@ nos, я посмотрел на quartz.net. Имеет ли это зависимость от базы данных? Я имею в виду, нужна ли база данных для работы? – Roman

+0

@ А, нет, нет. Но вы можете использовать базу данных для хранения задач, если хотите. –

1

Существует, конечно, много способов. Вот он.

Реализовать свои длинные запущенные сервисы как служба Windows, отправлять сообщения о вещах-в-дел в эту службу из приложения ASP.NET с помощью MSMQ,

4

Самого лучшего способа, чтобы не запускать их в ASP.net код. Это звучит как идеальная задача для запланированной задачи или службы Windows. ASP.net (MVC или иначе) на самом деле не настроен для этого - разделите их на отдельный проект.

+0

Во-вторых, создайте консольное приложение и обратитесь к своей библиотеке. Скомпилируйте в исполняемый файл. Используйте Task Schedular для запуска .exe с интервалами. Разумеется, для этого требуется, чтобы у вас был доступ (и контроль) на сервере хостинга. –

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