Я хочу, чтобы мое приложение ASP.MVC функционировало в качестве планировщика для фоновых задач.Класс подкласса HttpApplication имеет следующий код:
public class MvcApplication : System.Web.HttpApplication
{
private Timer Timer;
protected void Application_Start()
{
if (Timer == null)
{
TimerCallback cb = OnTimerElapsed;
AutoResetEvent autoEvent = new AutoResetEvent(false);
Timer = new Timer(cb, autoEvent, INITIAL_DELAY, TIMER_INTERVAL);
}
}
private void OnTimerElapsed(Object stateInfo)
{
//perform background task
}
}
Кроме того, вместо использования System.Threading.Timer я также заменяю его на эквивалентный Кварцу код, но через некоторое время он также прекращает работу.
Так что возникает вопрос, является ли Application_Start () правильным местом или есть лучшее место?
Подходы Таймера и Кварца работают.Но с Quartz, похоже, что на интервале в 1 минуту, после 20 интервалов (20 минут), триггер больше не срабатывает.С Таймером я не уверен, через сколько интервалов срабатывает триггер.