spring批处理向现有作业参数添加新参数

aydmsdu9  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(452)

我有一个接口实现,它将我的请求Map到 JobParameters ```
@Component("myMapper")
public class MyMapper implements RequestMapper {

@Override
public JobParameters map(Request request) {
    JobParametersBuilder parameters = new JobParametersBuilder();
    parameters.addString("name", request.getValue(NAME));
    parameters.addString("test", request.getValue(TEST));
    return parameters.toJobParameters();
}

}

在我的jobrunner类中,我必须在执行作业之前添加一个不在请求对象中的附加参数:

public Response runJob(final Request request, final String id) {
Job job = getJob(request);
JobParameters parameters = myMapper.map(request);

//i want to add id to parameters
JobExecution execution;

    execution = jobLauncher.run(job, parameters);

}

如何添加此新参数?
egdjgwm8

egdjgwm81#

没有在中添加参数的方法 JobParameters 直接,你需要使用 JobParametersBuilder .
你需要构造 JobParametersBuilder 从现有 JobParameters 并在生成器中添加参数,然后再次获取 JobParameters 来自建筑商。

JobParameters parameters = myMapper.map(request);
JobParametersBuilder parametersBuilder = new JobParametersBuilder(parameters);
parametersBuilder.addString("id", id);
JobParameters newParameters = parametersBuilder.toJobParameters();

相关问题