Quartz.NET与Windows计划任务。 他们有什么不同?

我正在寻找Quartz.NET和Windows Scheduled Tasks之间的一些比较?

他们有什么不同? 每个人有什么优点和缺点? 我如何select使用哪一个?

TIA,

在Quartz.NET中,我可以比较一些早期的观点:

  1. 编写代码 – 您可以用.NET语言表达您的意图,编写单元测试和调试逻辑
  2. 与事件日志集成,你有Common.Logging,甚至允许写入数据库..
  3. 健壮和可靠
  4. 更丰富的API

这主要是一个关于你需要什么的问题。 Windows计划任务可能会给你所有你需要的。 但是,如果您需要集群(分布式工作人员),对触发或失火处理规则的细粒度控制,您可能希望查看Quartz.NET在这些方面提供的功能。

采取最简单的,满足您的要求,但足够抽象,以允许改变。

我的直觉反应是在安装另一个调度程序之前先尝试获取集成的WinScheduler以处理您的需求 – 推理:

  1. 无需安装 – 默认安装并启用
  2. 没有代码写 – 作为元数据表示的作业
  3. 与事件日志等整合
  4. 强大和可靠 – 足够MSFT,谷歌等
  5. 丰富的API – 创建工作,检查状态等
  6. 与远程管理工具集成
  7. 安全集成 – 以不同凭据运行作业
  8. 监控工具

然后达到石英,如果它不符合您的需求。 Quartz当然也有很多这样的功能,但是如果可以的话,不要再增加另一个服务来拥有和管理。

对我来说,一个重要的区别是没有包含在其他答案中的是调度程序执行的内容。

Windows任务计划程序只能运行可执行程序和脚本。 在Quartz中编写的代码可以直接与您的项目的.NET组件进行交互。

使用任务计划程序,您将不得不编写一个shell可执行文件或脚本。 在该shell的内部,您可以与您的项目组件进行交互。 编写这个shell代码不是一个困难的过程,你必须考虑部署额外的文件。

如果预计在项目的整个生命周期中添加更多计划任务,则最终可能需要创建额外的可执行文件或脚本文件,这需要更新部署过程。 使用Quartz,您不需要这些文件,这减少了创建和部署额外任务所需的全部工作。