网站上的计时器每小时激活一次Web服务呼叫

时间:2011-05-15 12:53:19

标签: asp.net web-services timer

如果我想每小时运行一系列Web服务调用。我怎样才能从我的Web服务器上做到这一点?

我猜测有一个计时器需要部署在某个地方以便倒计时,当时间到了,它会再次使用这些Web服务并检索返回的XML数据以存储在数据库中。然后计时器再次重置。

5 个答案:

答案 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托管应用程序要拆除其主机会花费很多时间(这几乎是不可能的)。

Auto Starting Websites