- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 SpringBatch 几个月了..我曾经将与执行相关的变量(如页数、项目数、批处理的当前位置等)存储到 Bean 中。然后使用 setVar()
、getVar( )
-setter 和 getter。这些 bean 还通过手动同步在线程之间共享。
但现在我发现这可能是执行批处理作业的错误方法。挂载到 ItemReaders
的 Bean 无法持久保存在 JobRepository
中,因此无法记录作业停止和重新启动的状态。所以我还是需要回去使用StepExecution
/JobExecution
。我在网上找到的那些例子都是基于 XML 配置,或者是更糟糕的 SpEL Autowiring 到 setter 方法。
我纯粹使用 Java Config..是否有 Java 配置或面向 Java 代码的方式来访问 StepExecution
?访问各种 ExecutionContext
的最佳实践是什么?
最佳答案
要访问 StepExecution
和 JobExecution
,您的 ItemReader
、ItemProcessor
或 ItemWriter
必须实现 StepExecutionListener
。
例如:
public class MyCustomItemWriter implements ItemWriter<Object>, StepExecutionListener {
private StepExecution stepExecution;
@Override
public void beforeStep(StepExecution stepExecution) {
this.stepExecution = stepExecution;
}
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
return stepExecution.getExitStatus();
}
@Override
public void write(List<? extends Object> list) throws Exception {
if (null == list || list.isEmpty()) {
throw new Exception("Cannot write null or empty list");
}
ExecutionContext stepExecContext = this.stepExecution.getExecutionContext()
ExecutionContext jobExecContext = this.stepExecution.getJobExecution().getExecutionContext();
// TODO: Write your code here
}
}
关于java - 在 ItemReader/Processor/Writer 中访问 StepExecution/JobExecution 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34197606/
我已经创建了我的自定义 ItemReader: @Component("pricereader") public class MyItemReader implements ItemReader{ @
我正在尝试访问 itemReader 中的 JobParameters,我遵循了 Spring 用户指南中的“作业和步骤属性的后期绑定(bind)”,但无法使其工作。 这是我的配置: Spring 批
我正在从数据库中读取数据,它有很多行,是的,但是“我认为读者在该步骤中释放了内存”。它需要超过 1Gb 的内存。怎样才能改善呢?使用另一种阅读器? ...
我正在使用 Spring Batch 的 ItemReader 来读取文件 我的输入文件包含由 分隔的一长串字符串, 如下所示: 2333,443445,5555,3344... 每个字符串都应该转换
我用 JdbcTemplate 实现了 ItemReader 。 问题是 read() 在无限循环中被调用。 public class MyReader implements ItemReader,
使用 Spring Batch 我试图将输入文件的每一行作为 String 提供给 ItemProcessor 而 中没有任何“CSV 解析”项目阅读器。 我提出了一个包含以下 reader() 方法
在我的 springbatch+quartz 设置中,我正在使用 FlatFileItemReader 读取一个 CSV 文件。我想为读者设置光标以使用给定的读者参数启动下一个作业实例。是否可以?
以下是我的 Spring Batch 用例。 从 Web 服务读取输入。 Web 服务将返回所有记录。 处理记录。 将处理过的记录一一写入。 我很清楚第 2 步和第 3 步,但无法弄清楚如何实现一个可
我有一个 Spring Batch 应用程序,它使用 JdbcCursorItemReader 从数据库表中读取数据,并使用 FlatFileItemWriter 将其写入平面文件。 当我测试我的应用
我有一个 Spring Batch 应用程序,它使用 JdbcCursorItemReader 从数据库表中读取数据,并使用 FlatFileItemWriter 将其写入平面文件。 当我测试我的应用
我正在尝试读取固定长度的文本文件并使用 spring Batch 将其寄存器导入数据库,但输入文件的常规布局是嵌套的,类似于(添加制表只是为了简化可视化): FILE HEADER ENTER
我想验证文件名和记录。我的应用上下文如下 我的项目阅读器上下文如下所示
我在我的批处理 Spring 项目中定义了一个作业流,并定义了 ItemReader、ItemProcessor、ItemWriter 等 我的 ItemReader 如下代码: @Component
我有一个带有简单自定义读取器和写入器的 Spring Batch 项目。当我运行代码时,我最终会出现一个无限循环,打印第一个项目“项目 1”。我究竟做错了什么? 这是我的代码: Reader.java
我刚刚开始使用 Spring Batch,想知道维护要在 ItemReader 中读取的项目列表的最佳实践是什么。我看到的例子是这样的: private static List items = new
我目前有一个应用程序,我正在尝试诊断我在设置中所做的错误,但没有运气确定为什么它在非常特定的情况之外无法工作。 首先是我正在使用的代码。 配置.java @EnableBatchProcessing
我正在尝试使用 ListItemReader 创建一个 Spring Batch 作业, ItemProcessor和 ItemWriter . XML 如下所示,
我有一个从数据库读取的多线程批处理作业,我担心不同的线程会重新读取记录,因为 ItemReader 在 Spring 批处理中不是线程安全的。我经历了SpringBatch FAQ部分指出 You c
当我尝试读取 csv 文件时,Spring 批处理遇到了这个问题。 我必须读取具有如下结构的CSV: valueHeader;valueHeader;valueHeader;valueHeader;v
我有一个 Spring Batch 项目,其中有 JsonResouurceAsyncPagingItemReader,这是一个自定义 ItemReader,它从 Web 服务异步检索数据。 此自定义
我是一名优秀的程序员,十分优秀!