我使用的是Spring批处理4.3.2。.我正在写测试,发现了一些奇怪的东西,签出下面的代码。
JobExecution jobExecution = this.jobExplorer.getJobExecutions(jobInstance).get(0);
System.out.println("jobExecution by getJobExecutions jobExecution.getJobId() " + jobExecution.getJobId());
System.out.println("jobExecution by getJobExecutions jobExecution.getStepExecutions().size() " + jobExecution.getStepExecutions().size());
System.out.println("jobExecution by getJobExecutions jobExecution.getExitStatus()" + jobExecution.getExitStatus());
JobExecution lastJobExecution = this.jobExplorer.getLastJobExecution(jobInstance);
System.out.println("jobExecution by getLastJobExecution lastJobExecution.getJobId() " + lastJobExecution.getJobId());
System.out.println("jobExecution by getLastJobExecution lastJobExecution.getStepExecutions().size() " + lastJobExecution.getStepExecutions().size());
System.out.println("jobExecution by getLastJobExecution lastJobExecution.getExitStatus()" + lastJobExecution.getExitStatus());
jobExecution by getJobExecutions jobExecution.getJobId() 41
jobExecution by getJobExecutions jobExecution.getStepExecutions().size() 3
jobExecution by getJobExecutions jobExecution.getExitStatus()exitCode=COMPLETED;exitDescription=
jobExecution by getLastJobExecution lastJobExecution.getJobId() 41
jobExecution by getLastJobExecution lastJobExecution.getStepExecutions().size() 0
jobExecution by getLastJobExecution lastJobExecution.getExitStatus()exitCode=COMPLETED;exitDescription=
对于相同的jobexecutions,我会得到不同的“getStepExecutions()”结果,这取决于我获取它们的方式。你知道为什么会这样吗?还是我做错了什么?
干杯T
这是SimpleJobExplorer#GetLastJobExecution
实现中的一个bug。谢谢你的报道。我在这里为它创建了一个问题https://github.com/spring-projects/spring-batch/issues/3943,我计划在下一个补丁版本中使用这个问题。
我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。
当我使用Spring批处理管理运行长时间运行的批处理作业的多个实例时,它会在达到jobLauncher线程池任务执行程序池大小后阻止其他作业运行。但是从cron中提取多个工作似乎效果不错。下面是作业启动器配置。 Spring批处理管理员Restful API是否使用不同于xml配置中指定的作业启动器?
我对Spring批处理跳过逻辑有一些问题。我已经配置了一个作业的步骤来跳过两个异常(SQLIntegrityConstraintViolation异常和乐观锁定失败异常): 但当作业运行时,由于我将其配置为跳过的异常,作业以未知状态完成: 我做错什么了吗?我希望这一步跳过负责抛出其中一个异常的项,并继续处理,以便以完成状态结束。
我在表中总共有8条记录,其中6条在spring批处理调用read时可以使用jpareader。现在我将页面大小和块大小设置为1以进行测试。期望作业运行时,它应该进行6次读取调用,然后它应该逐个处理,逐个写入。但实际上发生的是,它只是调用read 4次(从日志中我可以看到这样读取页面0...1)并处理4个,其中一个由于不匹配写入标准而被过滤掉,然后它只是更新了3个记录,作业标记为成功完成。
在Spring batch中(请参见https://docs.Spring.io/spring-batch/3.0.x/reference/html/metadataschema.html),有六个表: batch_job_execution batch_job_execution_context batch_job_execution_params batch_job_instance batc
我有一个Spring批处理作业,它通过SFTP从远程Linux服务器检索文件。远程服务器上的目录是一个包含七天文件(约400个文件)的存档。文件的大小相对较小。 Spring批处理知道哪些文件已经被处理。 当我启动应用程序时。第一次,Spring Batch tasklet检索文件时,Spring Batch会为它已经处理的每个文件生成一个异常: > 在Transformer类中,是否应该检查文件