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

Spring Batch:针对不同作业的不同作业启动器

江英华
2023-03-14

我有两个不同的工作(实际上更多,但为了简单起见,假设2)。每个作业可以与另一个作业并行运行,但同一作业的每个实例应该顺序运行(否则实例将共享彼此的资源)。

基本上,我希望这些作业中的每一个都有自己的作业实例队列。我想我可以使用两个不同的线程池作业启动程序(每个都有一个线程),并将一个作业启动程序与每个作业相关联。

在从Spring Batch Admin web UI中启动作业时,是否有一种方法可以做到这一点?

共有1个答案

谯乐池
2023-03-14

有一种方法可以为特定的工作指定一个特定的工作启动程序,但我找到的唯一方法是使用JobStep。

如果您有一个名为“SpecificJob”的作业,这将创建另一个作业“QueueSpecificJob”,因此当您通过Quartz或Spring Batch web admin启动它时,它将排队执行“SpecificJob”。

<bean id="specificJobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
    <property name="jobRepository" ref="jobRepository"/>
    <property name="taskExecutor">
        <task:executor id="singleThreadPoolExecutor" pool-size="1"/>
    </property>
</bean>

<job id="queueSpecificJob">
    <step id="specificJobStep">
        <job ref="specificJob" job-launcher="specificJobLauncher" job-parameters-extractor="parametersExtractor" />
    </step>
</job>
 类似资料:
  • 在Apache Hadoop中使用job.waitForCompletion(true)方法和通过ToolRunner.run(new MyClass(),args)启动map reduce作业有什么区别? 我通过以下两种方式执行MapReduce作业: 首先如下: 其次是: 两种方法的输出都是一样的。但是我不明白这两种方法有什么区别?哪一种比另一种更受欢迎?

  • 我得和Spring批处理问题。都与通过命令行传入的JobParameters有关。 第一期: 为了从JobParameters获取路径,我使用BeforeStep注释加载JobParameters并将它们复制到局部变量上。不幸的是,这不起作用。变量将为并且执行失败,因为文件无法打开。 如何访问读取器中的作业参数?我想将文件路径作为命令行参数传入,然后读取这个文件。

  • 问题内容: 我有一个构建作业和一个测试作业参数。 我想从事构建工作,在并行执行中同时运行一个参数的测试作业和具有不同参数的同一测试作业。 如何做到这一点,以及是否有可能无需编写自己的插件即可执行? 谢谢! 问题答案: 创建测试作业时,将其创建为“构建多配置项目”。在配置作业时,选择“配置矩阵”,然后选择“用户定义的轴” 您可以在作业中将此轴的名称用作参数。给定的参数将在不同的作业中同时启动。(如果

  • 我有一个用Spring Boot(1.4.1.Release)开发的Spring批处理作业。 它成功地从命令行运行,并将作业执行数据写入MySQL。它在Spring Batch Admin(2.0.0.M1,指向MySQL)中显示为不可启动的作业,我可以看到作业执行度量。 我想知道以前有没有人这样做过。文档中有一节添加您自己的启动作业。但是它没有指定在哪里为作业添加实现jar? 是spring-b

  • 主类 作业配置 HelloWorldTasklet 为了使事情更清楚,这是我在jar中看到的文件夹列表。看起来spring boot maven插件是用来创建jar的?那么,为什么批处理作业不在Eclipse之外启动: 注意:如您所见,日志还显示确实选择了主概要文件,因为在启动任务时,我传递了作为输入参数。

  • 问题内容: 问题说明 假设您具有带有Standalone Manager的Spark集群,通过在客户端应用程序中创建作业来调度作业。客户端应用程序在JVM上运行。为了提高性能,您必须使用不同的配置启动每个作业,请参见下面的“ 作业类型”示例 。 问题是您不能从单个JVM创建两个会话。 那么,您如何同时使用不同的会话配置启动多个Spark作业? 通过不同的会话配置,我的意思是: 等等 我的想法 解决