Когда использовать потоки для запланированных задач / веб-методов - PullRequest
0 голосов
/ 13 января 2009

Эти двое могут выглядеть так, будто не имеют никакой корреляции, но терпите меня!

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

В новой архитектуре у нас теперь есть проект веб-приложения с двумя библиотеками классов для бизнес-уровня и уровня доступа к ресурсам.

Однако мне все еще нужны те же функции в этой версии, и в настоящее время я пытаюсь разработать подходящее решение.

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

Если у кого-то есть и хорошие примеры многопоточности ASP.NET, я хотел бы взглянуть на них

1 Ответ

1 голос
/ 13 января 2009

Проблема, с которой вы можете столкнуться, заключается в том, что поток будет запущен в процессе пула приложений, который по разным причинам может быть закрыт. Например, в одночасье бездействия процесс мог законно завершиться. Это нормально, любой новый запрос будет просто вращать новый рабочий процесс. Однако, если вам нужно что-то запускать каждый час, этого не произойдет, если пул будет закрыт.

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

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

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