|
对于最新稳定版本,请使用Spring Batch Documentation 6.0.0! |
ItemStream
双ItemReader和物品撰稿人各自的目的都很好,但还有一个
这是双方共同的担忧,需要另一个接口。一般而言,作为
批处理工作的一部分是,读者和写者需要被打开、关闭和
需要一个持续状态的机制。这ItemStream接口正好达到了这个目的,
如下例所示:
public interface ItemStream {
void open(ExecutionContext executionContext) throws ItemStreamException;
void update(ExecutionContext executionContext) throws ItemStreamException;
void close() throws ItemStreamException;
}
在描述每种方法之前,我们应提及执行上下文.客户ItemReader也实现了ItemStream应该打电话打开在任何呼召之前读,以打开任何资源,如文件或获取连接。类似的
限制适用于ItemWriter实现ItemStream.如同所述
第二章,如果在执行上下文,它可以用来开始
这ItemReader或ItemWriter地点与初始状态不同。相反关闭被召集以确保开放期间分配的资源安全释放。更新调用 的主要目的是确保当前持有的任何状态都加载到
提供的执行上下文.该方法在提交前被调用,以确保
当前状态在提交前会在数据库中持久化。
在当客户ItemStream是步(来自Spring
批处理核心),一个执行上下文为每个 StepExecution 创建,允许用户
存储特定执行的状态,期望如果
一样JobInstance又重新开始了。对于熟悉Quartz的人来说,语义学
与Quartz非常相似JobDataMap.