如何配置Spring批处理(使用Java配置)在单个事务中写入所有块?Spring批处理Java配置提交间隔
我有一个简单的简单的Spring批处理作业,只需一步。该步骤由JdbcCursorItemReader
,一个自定义项目处理器和一个自定义项目编写器组成。目前,我在StepBuilder
上设置了块大小。这似乎也将提交间隔设置为相同的值。一方面,我不想将所有项目加载到内存中,因此需要面向块的处理。另一方面,处理器需要对所有项目进行单个事务,而不仅仅是当前块中的项目。它不会将项目存储在内存中。没关系,如果#write
被多次调用。
如何使用Java配置来实现?
我不知道这是否可以用一个步骤执行侦听器来完成。 –
我想可能是。我们将尝试在beforeStep方法中打开事务,并在afterStep方法中提交它。我不确定的是:我们能以某种方式配置作者使用我们自己的事务吗?但是,仍然存在这个问题,我们绕过了SB的核心概念。而且,它也只适用于小的工作量,因为我们通常不想长时间运行事务。 –