我应该使用 Quartz XML 作业文件还是使用代码配置作业

Should I use a Quartz XML job file or configure jobs with code

我正在为一个新项目选择 Quartz Scheduler。我以前使用过 Quartz,我使用 XML 作业文件配置它。现在我查看当前的 Quartz 文档,所有示例都是代码片段。 XML 作业文件是否已弃用?我应该在代码中进行作业调度和配置吗?

非 java 的人总是说 java 太以 XML 为中心 :)。我会说这取决于很多事情。您是否使用其他 java 框架,例如 Spring?如果是这样,您是否为此放弃了基于 XML 的配置?这也是放弃石英的 XML 配置的一个论据。

声称外部配置文件的优点之一是在编译语言中不需要编译来更改作业配置(因此可以由非开发人员完成)。只需更新相应的配置文件并重新启动应用程序即可。

这有多真实取决于您的应用程序是如何部署的。通常,所有应用程序工件的部署都作为构建过程的一部分发生(如果您使用 Maven 创建 war 并推送到服务器或 git 存储库)。因此,为工作单独配置可能并不是真正的优势。

但是,我可以想象一个应用程序部署到一个支持类似 mbean 的容器,这样您就可以提供一个简单的管理界面来安排您的作业。您可以允许业务人员控制日程安排,同时对您的代码库造成最小的工作量和影响。

如果您使用基于代码的配置,您将无法在不重新编译和重新部署的情况下更改作业的计划。您可以通过某种方式将设置外部化来做到这一点,但那样您就只是在重新发明外部配置文件。