当前位置: 首页 > 知识库问答 >
问题:

Spring批处理和作业调度

漆雕深
2023-03-14

共有1个答案

朱建弼
2023-03-14

我不确定您在这里有一个真正的问题,但是的,用Spring批处理编写的作业使用作业调度器是很棒的。我已经通过AutoSys和Tivoli写了几十个任务;不熟悉SOS,但我想应该是差不多的。

通过Spring批处理调度作业的主要技巧是确定作业所需的参数。

Spring批处理使用jobinstancejobexecution的概念来管理作业;实例由作业名和相关参数定义,而执行是尝试运行实例。一旦执行运行到完成,实例也就完成了,不能重新运行。

针对提问者的评论进行编辑:

Spring Batch的模型对我来说没有意义的一点是,确定作业参数的逻辑都是外部化的;在很多情况下,像日期这样的参数可以很容易地通过调用脚本生成,但我有很多工作需要更复杂的参数逻辑。

我最后做的是扩展CommandLineJobRunner以获得一个名为JobParameterGenerator的新接口的实例。JobParameterGenerator的实现通常特定于特定作业;例如,一个实现必须进行一些数据库查找,以便为作业制定适当的日期范围。我还创建了一个基本的jobParameterGenerator,它只返回当前的DateTime供始终是新实例的作业使用。希望这有帮助。

 类似资料:
  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 是否可以配置Spring批处理管理员来启动主作业和从作业。我们有一个进程作为主节点和3-4个从节点。 Spring batch admin在单独的JVM进程中运行,但所有Spring批处理作业都使用相同的批处理数据库模式。

  • 我已经开始探索Spring Batch,并遇到了一些基本问题。

  • 我正在使用sping-xd通过批处理作业进行数据摄取。大量作业在4个容器中并行运行。任何地方都在10到40个作业之间。其中大多数在不到一分钟的时间内完成。我使用redis(而不是Rabbitmq)和mysql进行数据存储。Spring-xd-批处理使用不同的mysql-db进行作业/步骤统计,我的应用程序使用不同的mysql-db用于自己的目的。两个mysql-db都在同一台服务器上。所有4个容器

  • 我想从Spring批处理管理作业的选项卡上的“Job Names Registered”列表中隐藏一些作业。 我使用的是旧版本“spring-batch-core-2.2.6.release”和“spring-batch-admin-manager-1.3.0.release”,在org/springframework/batch/core/configuration/xml/spring-bat