【问题标题】:Can I use Quartz Scheduler 1.8.6 using the latest Spring Batch?我可以使用最新的 Spring Batch 使用 Quartz Scheduler 1.8.6 吗?
【发布时间】:2019-04-17 14:29:56
【问题描述】:

我需要在最新版本的 Spring Batch 中使用 Quartz Scheduler v1.8.6。有一些遗留批处理作业使用 Quartz Scheduler v1.8.6,但目前不使用 Spring Batch。

我能够使用 Quartz Scheduler v1.8.6 和最新的 Spring Batch v4.1.0 来安排和运行一个简单的 Spring Batch 作业,但必须在我的 pom.xml 中添加一个依赖项才能使用旧版本的 spring-context -支持 v3.2.18.RELEASE。 spring-context-support 提供了通往 Quartz 的桥梁,v3.2.18.RELEASE 是最新版本,它将在我的测试代码中安排和运行一个简单的作业。

  1. 是否有文档列出了 Spring Batch 和 Quartz Scheduler 的兼容版本?
  2. 以这种方式使用旧的 spring-context-support 是完全不正确的方法吗?
  3. 我应该使用旧版本的 Spring Batch 吗?我宁愿不必这样做,因为最新的 Spring Batch 似乎有很多很棒的功能。

【问题讨论】:

    标签: spring spring-batch quartz-scheduler


    【解决方案1】:

    是否有文档列出了 Spring Batch 和 Quartz Scheduler 的兼容版本?

    您可以在您使用的 Spring Batch 版本的build.gradle 文件中查看石英的版本。对于 Spring batch 4.1.0,你可以使用quartz 2.3.0。

    如果您使用 Spring Boot,您可以查看start.spring.io/actuator/info 以获取有关已知通过 Spring Boot 导入时最适合协同工作的 Spring 项目版本的信息。例如,如果您使用 Spring Boot 版本 2.1.0 生成带有 start.spring.io 的项目并添加 spring-boot-starter-batch 和 spring-boot-starter-quartz 启动器,您将在类路径中获得 Spring Batch 4.1.0 和 Quartz 2.3.0。

    以这种方式使用旧的 spring-context-support 是一种完全错误的方法吗?

    不正确(只要它对你有用)但不推荐。

    • 如果您确实使用 Spring Boot,您将获得最新的 spring-context 版本(在上面给出的示例中为 5.1.2)。
    • 如果你不使用Spring Boot,你仍然可以导入Spring Boot提供的maven BOM,让它为你导入版本。这比手动管理版本要好。

    我应该使用旧版本的 Spring Batch 吗?我宁愿不必这样做,因为最新的 Spring Batch 似乎有很多很棒的功能。

    我不推荐这个。您可以坚持使用 v4.1.0,因为您设法让它按您提到的那样工作。 Spring v4.x 需要 Java 8,所以只要你使用的 quartz 版本运行在 Java 8 上,就可以调度 Spring Batch 作业。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2014-10-01
      • 2016-10-10
      • 1970-01-01
      • 2017-02-02
      相关资源
      最近更新 更多