在特定时间运行流程的最佳方式

时间:2015-09-14 21:45:01

标签: c# service

您好C#中有 Windows服务。在我的Windows服务中,我需要在确定的时间运行一个过程hh:mm:ss。

例如,我需要在以下位置运行该过程:

  • 09:50小时
  • 11.45 hrs
  • 15:15
  • 22:05

(这些时间可以改变,所以我想把它们存储在XML文件中)

现在我曾经有一个间隔为6小时的计时器,因此每6个小时执行一次。现在要求是另一个。我需要按照特定的时间表运行。

此外,我还被要求添加一个选项,Windows服务可以每隔X小时和Y分钟运行一次。

任何线索如何编码?

感谢。

2 个答案:

答案 0 :(得分:2)

另一个好方法是使用Quartz

  

<强> Quartz.NET
  Quartz.NET是一个功能齐全的开源作业调度系统   可用于从最小的应用程序到大型企业系统。

     

Quartz中的作业调度
  计划在发生给定触发器时运行作业。   几乎可以使用以下任意组合创建触发器   指令:

     
      
  • 在一天中的某个时间(到毫秒)
  •   
  • 在一周中的某些日子
  •   
  • 在本月的某些日子里
  •   
  • 在一年中的某些日子
  •   
  • 不在注册日历(例如商务假期)中列出的特定日期
  •   
  • 重复特定次数
  •   
  • 重复直到特定时间/日期
  •   
  • 无限期地重复
  •   
  • 以延迟间隔重复
  •   

答案 1 :(得分:1)

为什么重新发明轮子?只需使用Windows任务计划程序即可运行您的流程。

如果要从代码中设置任务计划程序,可以使用Managed Task Scheduler Wrapper