如果我想每小时运行一系列Web服务调用。我怎样才能从我的Web服务器上做到这一点?
我猜测有一个计时器需要部署在某个地方以便倒计时,当时间到了,它会再次使用这些Web服务并检索返回的XML数据以存储在数据库中。然后计时器再次重置。
答案 0 :(得分:4)
如果您想在ASP.NET Web应用程序中执行此操作,请查看Quartz.NET Job Scheduler,它非常适合此类事情。
否则,您可以将单独的应用程序作为Windows服务运行timer,或将控制台应用程序作为Windows计划任务运行。
答案 1 :(得分:2)
您可以将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
}
答案 2 :(得分:0)
为什么不使用cron? Cron就是为了做这件事而设立的。
答案 3 :(得分:0)
Windows任务计划程序可能就是您所需要的。
答案 4 :(得分:0)
另一种方法是使用IIS自动启动网站来定义Windows Service逻辑。 IIS自动启动优于Windows服务,因为它包含所有IIS应用程序托管逻辑,包括自动重新启动和积极的资源管理。编写得不好的Windows服务可能会导致服务器宕机,但是ASP.net IIS托管应用程序要拆除其主机会花费很多时间(这几乎是不可能的)。