哪个更适合用于定期工作:服务或计划任务?

Jas*_*son 4 c# cmd scheduled-tasks windows-server-2008

我有一项需要每30秒运行一次的任务.我可以做两件事之一:

  1. 编写一个运行任务一次的命令行应用程序,等待30秒,再次运行它然后退出.我可以使用Windows中的计划任务安排此任务,以便每分钟运行一次

  2. 编写一个在每次运行之间等待30秒的同时重复运行任务的服务.

在我看来,1号更简单,我会默认选择这样做.我懦弱了吗?我有理由将其作为服务而不是计划任务吗?两者的优点和缺点是什么,你最终会选择哪一个?

180*_*ION 8

我最近读了一篇关于这个问题的好文章.它进入了很多很好的原因,你应该写一个服务运行循环作业.此外,之前已经提出过这个问题:

/sf/ask/27321521/ Windows服务或预定任务,我们更喜欢哪一个?

使用计划任务的一个优点是,如果运行服务涉及潜在的风险,例如内存泄漏或挂起网络连接,则Windows服务可能会长时间挂起,对其他用户产生负面影响.另一方面,计划的任务被写为短期运行,因此即使它确实泄漏,效果也会最小化.

另一方面,上述某个问题中的某个人评论说调度程序的精确度限制在1分钟范围内,因此您可能会看到调度程序无法每30秒准确地运行您的任务.

显然需要考虑一些权衡因素,但希望这有助于您做出正确的决定.