繁体   English   中英

如何使用Java 1.8从存储在DB for Spring Batch应用程序中的JSON创建动态步骤? 因此,将在工作启动后创建步骤

[英]How to create dynamic Steps from JSON stored in DB for Spring Batch application using java 1.8? So, the steps will be created after job launch

启动作业后,我必须创建步骤。 我的工作参数将从数据库中获取JSON,其中包含步骤和子步骤。 如果JSON中没有该步骤,则不必将其包含在我的Job中。 步骤可以是随机顺序,客户可以更改步骤顺序。

我创建了定制的作业工厂,它将返回流程,因此,如果有与文件相关的任务,我将为其读取JSON并在主作业中创建/包含流程。 使用这种方法,我无法在作业启动后查询数据库,在作业配置时(使用注释)运行了JSON查询。

然后,我为每个步骤编写了决策程序,并为该特定步骤在Job and Continue中添加了所有决策程序。 但是在这里,我失去了阶跃动力。

jobbuilderFactory.get("DynamicJob").start(bootstrapData())
.next(step1Decider).on("CONTINUE").to(step1Execution())
.next(step2Decider).on("CONTINUE").to(step2Execution())
.
.
.end().build();

我想要得到的内容1.用户将使用一些参数启动作业2.使用作业参数值从数据库获取JSON 3.读取/解析JSON以创建步骤并将其包括在作业中4.开始执行作业

一旦从JSON定义了所有步骤,就可以动态创建作业定义,如下所示:

Step bootstrapData, step1, step2;

JobFlowBuilder jobBuilder = jobBuilderFactory.get("myjob").flow(bootstrapData);
if (someCondition()) {
    jobBuilder.next(step1);
}
if (someOtherCondition()) {
    jobBuilder.on("CONTINUE").to(step2);
}

// etc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM