如果我想每小時運行一系列Web服務調用。我怎麼能從我的Web服務器上做到這一點?定時器在網站上每小時激活Web服務調用
我猜測有一個計時器需要部署在某個地方,這樣它會倒計時,當時間到了,它會再次使用這些Web服務並檢索返回的XML數據以存儲在數據庫中。然後定時器重新設置。
如果我想每小時運行一系列Web服務調用。我怎麼能從我的Web服務器上做到這一點?定時器在網站上每小時激活Web服務調用
我猜測有一個計時器需要部署在某個地方,這樣它會倒計時,當時間到了,它會再次使用這些Web服務並檢索返回的XML數據以存儲在數據庫中。然後定時器重新設置。
如果您想在ASP.NET Web應用程序中執行此操作,請查看Quartz.NET Job Scheduler,它非常適合這類事情。
否則,您可以使用timer作爲Windows服務運行單獨的應用程序,或者將控制檯應用程序作爲Windows計劃任務運行。
爲什麼不只是使用cron?克倫設立這樣的事情。
我不確定Cron是否可用於Windows主機。更正如果我錯了。 – 2012-12-14 09:38:04
您可以使用System.Threading.Timer類應用在Global.asax中啓動事件:
protected static Timer timer;
protected void Application_Start(Object sender, EventArgs e)
{
timer = new Timer(MyRoutineToCall, null, TimeSpan.FromHours(1), TimeSpan.FromHours(1));
}
protected void MyRoutineToCall(Object state)
{
// do your stuff here
}
有趣。我也遇到了這個。爲什麼會在這裏使用緩存? http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet。 – 2011-05-15 14:02:46
@Jason,也許是因爲這是使用任務的方式之一。雖然我不知道Jeff爲什麼會這樣做,而不是手動創建任務。可能我的猜測是錯誤的:) – 2011-05-15 15:01:40
Windows任務調度可能是你所需要的。
謝謝你指點我正確的方向。我正在考慮對Global.asax進行更改,因爲該網站位於共享主機環境中。 http://stackoverflow.com/questions/1356789/quartz-net-with-asp-net – 2011-05-15 14:05:17
嗨,如何防止這種情況發生? http://forums.asp.net/p/1520519/3652545.aspx – 2011-05-15 14:35:52