我希望我的ASP.MVC应用程序充当后台任务的调度程序。该HttpApplication的,子类类具有以下代码:在ASP.NET中使用System.Threading.Timer或Quartz
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方法都可以工作。但是对于Quartz来说,似乎是间隔1分钟,在20个间隔(20分钟)后,触发器不再触发。对于定时器,我不确定触发器停止触发的时间间隔。
为什么你没有用cron触发器来使用Quarz? – 2012-03-24 01:20:11