在作业无效之前添加作业参数

时间:2018-11-02 12:28:49

标签: spring-batch

我有一个春季批处理工作,其中我需要在beforeStep中设置工作参数 我在下面使用相同的代码:

@Override
    public void beforeJob(JobExecution jobExecution) {
        String pid = fetchPid();
        jobExecution
            .getJobParameters()
            .getParameters()
            .put("pid", new JobParameter(pid));
    }

运行以上代码并进行调试时,我发现jobparameters中不存在pid。这有什么问题吗?

1 个答案:

答案 0 :(得分:0)

  

这有什么问题吗?

JobParameters#getParameters返回不可修改的参数映射(请参见Javadoc)。因此,按原样添加pid键将无法正常工作。

  

我需要在beforeStep中设置作业参数

我猜您的意思是beforeJob,而不是beforeStep,因为您的代码显示了beforeJob方法。使用JobExecutionListener添加参数为时已晚,因为参数用于标识实例,并且在调用beforeJob时,已经使用给定的参数启动了执行。您需要准备参数 upfront ,然后使用它们通过jobLauncher.run(job, jobParameters)启动作业。