在可配置的计划上运行任务的最有效方法

Jim*_*iel 2 .net c# windows-services

我正在创建一个Windows服务,用于将我们的软件自动部署到几个不同的环境.

启动服务时,它会实例化一个自定义Deployer对象.Deployer对象首先读入一个配置文件,其中包含环境列表及其部署时间,例如QA-0900,1400,用于在上午9点和下午2点部署到QA.然后它启动一个超时为45秒的Timer,然后检查每个超时,如果当前时间与列表中的时间匹配.如果找到匹配项,则会开始部署到该环境.

每45秒进行一次轮询似乎很愚蠢和低效,但我认为没有更好的方法可以做到这一点.

有什么想法吗?

Jos*_*osh 7

它必须是Windows服务进程吗?这听起来像是可以使用Windows任务调度系统完成的事情.特别是如果您使用的是Windows Server 2008,则任务调度非常强大,可以通过编程方式管理任务.