Как веб-приложению выполнить задачу расписания на общем хосте? - PullRequest
3 голосов
/ 24 ноября 2011

Насколько я знаю, планировщик quartz.net запускается в global.asax.То есть планировщик quartz.net не работает, если кто-то не заходит на сайт.Это небезопасный способ, потому что поток планировщика может быть прерван путем перезагрузки сервера или прерывания процесса в пуле IIS, и поток планировщика останется незапущенным, пока кто-то снова не заходит на сайт.планировщик для решения этой проблемы.Но мы используем общий хост , и мы не можем написать сервис или задание сервера sql или запланировать задачу windows на хосте.

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

Ответы [ 2 ]

2 голосов
/ 26 ноября 2011

Вы должны установить quartz.net в качестве службы Windows и получить к нему доступ из своего веб-приложения с помощью удаленного взаимодействия.Это гарантирует, что планировщик всегда работает.Инструкции по настройке планировщика в качестве службы Windows приведены здесь: Начало работы с Quartz.Net Part 1

1 голос
/ 24 ноября 2011

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

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

...