我必须在启动Job之后创建步骤。我的工作参数将从数据库中获取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以创建步骤并将其包含在Job中 4.开始执行作业
答案 0 :(得分:0)
一旦您从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