网站上的计时器,用于每小时激活一次 Web 服务调用



如果我想每小时运行一系列 Web 服务调用。如何从我的 Web 服务器执行此操作?

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

如果您想

从 ASP.NET Web应用程序中执行此操作,请查看 Quartz.NET 作业计划程序,它非常适合此类事情。

否则,您可以将单独的应用程序作为带有计时器的 Windows 服务运行,或者将控制台应用程序作为 Windows 计划任务运行。

您可以在 global.asax 中将 System.Threading.Timer 类与应用程序 Start 事件一起使用:

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
}

为什么不直接使用 cron? Cron 就是为了做这种事情而设置的。

Windows 任务计划程序可能是您需要的。

另一种方法是使用 IIS 自动启动网站来连接您的 Windows 服务逻辑。IIS 自动启动与使用 Windows 服务相比是明智的,因为它包含所有 IIS 应用程序托管逻辑,包括自动重新启动和积极的资源管理。编写不佳的 Windows 服务可以关闭服务器,但 ASP.net IIS 托管的应用程序需要花费很多时间才能关闭其主机(几乎不可能)。

自动启动网站

最新更新