使用Windows服务作为计划服务

时间:2009-05-08 08:19:29

标签: c# windows-services scheduled-tasks scheduling

我从客户那里得到这个问题,每天或每两周运行一些数据库脚本,具体取决于周期的类型。他们定义了一个“忙碌”时期和一个“安静”时期。他们正在为他们的应用程序使用共享主机,他们无法将SQL Server作业添加到他们的数据库中。

我想要做的是创建一个Windows服务,可以使用配置文件进行配置,包含不同的时间段和间隔。 此服务正在检查配置文件中的当前时间和日期与计划的时间段,并在间隔匹配时执行sql server存储过程

我的问题:有没有更好的方法可以在没有sql server的情况下进行这种调度,或者你知道现有的,更通用的(免费)解决方案是否已经存在?

[编辑] 我不能使用Windows任务调度程序,因为他们的安静时期是在冬季,而他们的忙碌时期是在夏季。使用任务计划程序,我必须每年手动修改计划任务两次。这就是我和我的客户想要的。 [/编辑]

由于

4 个答案:

答案 0 :(得分:2)

始终有Windows Task Scheduler。是否有任何理由允许他们安装服务,但无法利用内置调度程序?

答案 1 :(得分:1)

Castle项目有一个(作为Castle Components的一部分),它可以帮助你完成大部分工作。

http://www.castleproject.org/

答案 2 :(得分:1)

您可以使用Windows的“计划任务”功能在需要时启动某些控制台应用程序。

如果您想创建自己的调度解决方案,那么我建议您查看Quartz.NET,它提供与Windows任务调度程序相同的灵活性。

答案 3 :(得分:1)

为什么不使用任务调度程序,然后每次启动应用程序时,都会检查它自己的计划,以确定它是否需要执行某些操作。

因此,您可以使用任务计划程序每15分钟启动一次应用程序。当您的应用程序启动时,它会使用它自己的配置文件来确定它是否需要执行某些操作。

您也可以使用它来让您的应用程序停止任何当前运行的应用程序版本,以终止任何长时间运行的任务!