【问题标题】:How can I effectively set the system.timer to run my windows service quarterly (once in 12 weeks)?如何有效地将 system.timer 设置为每季度运行一次 Windows 服务(每 12 周一次)?
【发布时间】:2011-03-03 09:43:22
【问题描述】:

如何在 12 周内运行一次 Windows 服务?我使用计时器实现了它,并将计时器间隔分配为(12*7*24*60*60*1000 毫秒)。如果我在这样的持续时间内(12*7*24*60*60*1000 毫秒)使用计时器会有什么问题。

如果导致问题,请建议每 12 周运行一次我的 Windows 服务的替代方法。

【问题讨论】:

  • ASP.Net在这个问题中的意义是什么?也标记?
  • 服务器重启的可能性有多大,例如自动更新?正如其他人所说,对于这么长的时间间隔,您最好使用调度程序。

标签: c# windows-services timer


【解决方案1】:

嗯,是的,它会引起问题。 Int32.MaxValue 为 2,147,483,647。

您不能将服务安排为每 12 周运行一次吗?你可以使用

net start yourservice
net stop yourservice

(根据 sajoshi 的评论:我的意思是您可以使用任务计划程序启动和停止服务)

【讨论】:

    【解决方案2】:

    我认为更好的方法是比较日期。

    1. 使用计时器创建 Windows 服务 间隔一小时。
    2. 在服务的 onstart 事件中 存储当前日期。
    3. 在 timer_tick / elapsed 事件中, 检查电流之间的差异 日期和存储日期,如果是 12 则 操作。同时更新当前 日期。

    【讨论】:

      【解决方案3】:

      您应该使用 Windows 任务调度程序来处理这种事情。您可以将其设置为以各种间隔启动任何应用程序(不是 Windows 服务)。

      此外,为什么在服务器上运行的应用程序会耗尽内存和 cpu 周期,而您每 12 周才需要一次!

      【讨论】:

        猜你喜欢
        • 2012-01-26
        • 2012-02-24
        • 1970-01-01
        • 1970-01-01
        • 2021-06-25
        • 2011-02-05
        • 1970-01-01
        • 2010-09-13
        • 1970-01-01
        相关资源
        最近更新 更多