当前位置: 首页 > 知识库问答 >
问题:

Spring批处理指示器模式

樊飞飙
2023-03-14

在Spring批处理作业中,我将项目写入目标文件(使用FlatFileItemWriter),并将输入记录“process indicator”字段更新为“processed”/“failed”(使用JdbcBatchItemWriter)。在“物品交易”中实现这一点的最佳方式是什么?

  1. 使用CompositeItemWriter(委托FlatFileItemWriter写入文件,委托JdbcBatchItemWriter更新“流程指示器”
  2. 使用ItemWriteListener方法“afterWrite”和“onWriteError”更新“流程指示器”

共有1个答案

岑光熙
2023-03-14

推荐的方法是使用ChunkListener#afterChunk来更新这样的标志。这允许它与您提出的其他两个选项中涉及的任何重试等逻辑分离。

 类似资料:
  • 从文件系统(主块)读取数据并将其发送到远程块(从块)。问题是不是线程安全的。 对于一些常见的批处理用例,使用多线程步骤有一些实际的限制。一个步骤中的许多参与者(例如,读取器和写入器)都是有状态的,如果状态不按线程隔离,那么这些组件在多线程步骤中是不可用的。特别是,Spring Batch中的大多数现成阅读器和编写器都不是为多线程使用而设计的。但是,可以使用无状态或线程安全的读取器和写入器,并且Sp

  • 我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 需要一个解决方案来使用在RabbitMQ上写入数据,并使用使用RabbitMQ读取数据。我们不是在寻找阿帕奇·Kafka,我们只是想简单地发送程序细节并使用它。 作家代码 JobConfig。JAVA CustomelFieldSetMapper.java 顾客JAVA SpringBatchAMQP应用程序。JAVA 读码器 作业配置。JAVA CustomerStepListener。JAVA

  • 我有一个批处理步骤 读取器和处理器流程如何工作?读取器是读取块并等待处理器处理它,还是一次读取所有块。

  • 当我使用Spring批处理管理运行长时间运行的批处理作业的多个实例时,它会在达到jobLauncher线程池任务执行程序池大小后阻止其他作业运行。但是从cron中提取多个工作似乎效果不错。下面是作业启动器配置。 Spring批处理管理员Restful API是否使用不同于xml配置中指定的作业启动器?