私はこのシンプルコードを作成して深夜毎にメソッドを実行しましたが、共有ホスト(不可能なWindowsスケジュールを作成しています)がありますが、これは機能しません。何か案が?TimerCallback in MVC3
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.DefaultNamespaces.Add("PhotoPremier.Controllers");
var dt = NextAt(new TimeSpan(0, 0, 0)); //
var timer = new Timer(new TimerCallback(callback), HttpContext.Current, dt - DateTime.Now, TimeSpan.FromHours(24));
}
static void callback(Object stateObject)
{
DbLayer.ContestManager cm = new DbLayer.ContestManager();
cm.UpdateAllPhotosInContest();
}
DateTime NextAt(TimeSpan time)
{
DateTime now = DateTime.Now;
DateTime result = now.Date + time;
return (now <= result) ? result : result.AddDays(1);
}
コードは、誰かがサイトを積極的に利用しているときにのみ実行されます。真夜中に誰もサイトにいない場合、コードは実行されません。 –
私はこのコードが止まらないと思います!か否か?どのように私はこれをプログラマーですか? – AFetter
ワーカープロセスがリサイクルされるとコードが停止しますが、これはさまざまな時に発生します。他のユーザーがログインするまでは再開しません。 –