#asp.net #asp.net-mvc-2 #scheduled-tasks
#asp.net #asp.net-mvc-2 #запланированные задачи
Вопрос:
У меня есть asp.net приложение mvc 2, и мне нужно запускать задачу (вызывать WS, сохранять в db) раз в день. Каков предлагаемый способ для этого? У меня такое чувство, что я хотел бы выполнить эту задачу из веб-приложения.
Есть ли у кого-нибудь предложения: Я рассматривал .net quartz или обычную систему.Таймеры.Таймер? Кто-нибудь видит какие-либо проблемы?
Есть другие лучшие решения?
Большое спасибо -MB
Ответ №1:
Почему вы хотите запустить это из веб-приложения? У вас нет возможности даже узнать, будет ли веб-приложение запущено в требуемое время. Я бы порекомендовал вам посмотреть на службы Windows
Ответ №2:
веб-приложения — не лучший хост для запланированной задачи. Если вы не внедрили систему, поддерживающую работу процесса, нет никаких шансов быть уверенным, что ваше расписание будет выполнено. Quartz.net подходит для этого. Он состоит из основного модуля, который вы можете использовать в своем веб-приложении для сохранения задач, и серверного модуля (службы Windows), который выполняет ваши запланированные задания.
Недавно я внедрил свои собственные службы Windows и использовал Sql Server в качестве хранилища для своих запланированных заданий. Все работает довольно хорошо, даже если мне пришлось немного повозиться, чтобы собрать вещи воедино. Документация не всегда так понятна.
Ответ №3:
Взгляните на Quartz.Net, который доступен в виде пакета NuGet или с их сайта.
Существует множество примеров того, как их настроить, они очень гибкие, вам просто нужно определить класс, который реализует IJob
с помощью одного Execute()
метода, который запускается выбранными вами триггерами.
Вы также могли бы рассмотреть возможность использования Windows Workflow Foundation.