Windows services windows任务调度器用于安排代码重复运行的可靠性如何?

Windows services windows任务调度器用于安排代码重复运行的可靠性如何?,windows-services,scheduled-tasks,task,Windows Services,Scheduled Tasks,Task,我有一些代码需要放在WindowsServer2003机器上,每分钟运行一次 建议的处理方法是什么?把它设计成一个控制台服务,让任务调度器随时点击它,可以吗?(这有可能吗?)我是否应该接受它并将其作为windows服务编写?我会说,接受它并将其作为windows服务编写。我还没有发现计划任务是非常可靠的,当它不运行时,我还没有找到一个简单的方法来找出为什么它没有运行。由于它需要每分钟运行一次,我建议编写一个Windows服务。这并不是很复杂,如果你以前从来没有这样做过,那么学习如何做对你来说将是

我有一些代码需要放在WindowsServer2003机器上,每分钟运行一次


建议的处理方法是什么?把它设计成一个控制台服务,让任务调度器随时点击它,可以吗?(这有可能吗?)我是否应该接受它并将其作为windows服务编写?

我会说,接受它并将其作为windows服务编写。我还没有发现计划任务是非常可靠的,当它不运行时,我还没有找到一个简单的方法来找出为什么它没有运行。

由于它需要每分钟运行一次,我建议编写一个Windows服务。这并不是很复杂,如果你以前从来没有这样做过,那么学习如何做对你来说将是非常棒的


我不建议每分钟调用计划任务。

如果需要每分钟运行它,我会将其构建为windows服务。除了日常任务之外,我不会使用调度程序

我会说,这取决于它在做什么,但总的来说,我总是赞成使用最少的层。如果您将其作为控制台服务编写并使用任务调度器,那么您有两个地方需要继续维护


如果您将其作为windows服务编写,那么您只需少检查一个位置,以防出现问题。

我同意,创建控制台可执行文件并安排每分钟运行都是一种浪费。我建议去探索类似的东西。这样你就可以创建一个简单的工作并安排它每分钟运行。

唯一要考虑的另一点是,如果你的工作涉及某种数据库交互,那么就考虑一下你的数据库提供的集成/调度服务。p>


例如,为您的SQL Server相关服务创建SSIS包可能有点像过激,但它可以很好地与环境集成,并将有自己的日志/错误检查机制。Windows计划任务对于我们来说是相当可靠的,我们几乎在所有情况下都喜欢它们,因为它们易于安装和高级恢复功能。如果编写的部分代码最终被锁定或循环到一段不应该在其中的代码中,那么windows服务的常开特性可能会成为一个问题。我们通常以类似的方式编写代码

Init();
Run();
CleanUp();

然后,作为计划任务的一部分,我们对进程可以运行的时间设置了一个时间限制,如果进程运行的时间更长,我们会让它终止进程。如果我们确实有一段代码出现问题,计划的任务将杀死它,进程将在下一分钟启动。

在搜索计划的服务帮助时,我遇到了一个非常好的问题


如果windows服务用于计划任务,则会有各种好处。我同意。我建议使用任务调度,实现简单。请参阅。希望这些信息有助于最终确定实施方法。

事件日志应该说明为什么没有。@jeffamaphone“应该”是关键字。我还发现计划的任务不可靠,通常在事件日志中没有留下运行尝试的痕迹。似乎您反对将任务计划为每分钟运行一次的想法。。。但是,你赞成通过Quartz.Net来实现这个想法吗?我遗漏了什么吗?如果任务计划程序每分钟运行一次,为什么建议使用Windows服务而不是任务计划程序?是什么让你选择了这个选项?