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では、20分(20分)後に1分の間隔のように見えますが、トリガはもう起動しません。タイマーでは、トリガが発射を停止する間隔がいくつあるかはわかりません。
なぜQuarzをcronトリガーで使用していないのですか? –