【问题标题】:Timer on Website to activate Web Service calls every hour网站上的计时器以每小时激活一次 Web 服务调用
【发布时间】:2011-05-15 12:53:18
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net web-services timer


    【解决方案1】:

    如果您想在 ASP.NET Web 应用程序中执行此操作,请查看 Quartz.NET Job Scheduler,它非常适合此类操作。

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

    【讨论】:

    【解决方案2】:

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

    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
    }
    

    【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我不确定 Cron 是否可用于 Windows 托管。如果我错了,请纠正。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      Auto Starting Websites

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        • 2017-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        相关资源
        最近更新 更多