项目阅读器,项目编写器和Tasklet步骤

时间:2018-06-08 16:21:32

标签: spring-boot spring-batch

我正在使用带批次的弹簧批次。

我从beforeJob JobExecutionListener方法获取了作业ID。因为这个春天晚期绑定在读者和作者和tasklet步骤我没有获得我的所需的读者,作家和tasklet文件的工作ID。

我需要将此jobId附加到我的输出文件中。例如: outputFile_123 (我的唯一jobid)用于所有输出文件。

Listener.java: 
public class Listener implements JobExecutionListener
  { 
  public static long jobId;
  @Override 
  public void beforeJob(JobExecution jobExecution)
   { 
      jobId = jobExecution.getJobId(); 
    } 


 JobId.java: 
  public static String fileName(String filename, long jobId) 
    { 
       return filename + '_' + jobId; 
     }

我的编写器将生成输出文件:

writer.setResource(newFileSystemResource(JobId.fileName("filename"),Listener.jobId);

所以这位作者应该写出outputfile_123(unique jobid) 但这个带有jobId的输出文件,我没有在编写器(例如:FlatFileItemWriter)和我的阅读器(FlatFileItemReader)以及Tasklet生成的输出文件中看到。 但在少数文件中我看到生成的输出文件与jobId。对于那些文件,我已经编写了如下代码。

   File f =new File(JobId.fileName("filename"),Listener.jobId);

这里我得到 outputfile_123 但不是在编写器或Tasklet生成的输出文件中。

0 个答案:

没有答案