|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
|
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Batch 文档 5.1.2! |
两者都很好地服务于各自的目的,但有一个
他们俩都关心需要另一个接口。一般来说,作为
作为批处理作业范围的一部分,读取器和写入器需要打开、关闭,并且
需要一种持久化状态的机制。该接口用于此目的,
如以下示例所示:ItemReadersItemWritersItemStream
public interface ItemStream {
void open(ExecutionContext executionContext) throws ItemStreamException;
void update(ExecutionContext executionContext) throws ItemStreamException;
void close() throws ItemStreamException;
}
在描述每种方法之前,我们应该提到 .同时实现的 的 客户端应在对 进行任何调用之前调用 ,以便打开任何资源(如文件)或获取连接。类似的
限制适用于实现 .如
第 2 章,如果在 中找到了预期的数据,则可以用来启动
或位于其初始状态以外的位置。相反,调用以确保安全释放 open 期间分配的任何资源。 主要是为了确保当前持有的任何状态都加载到
提供的 .此方法在提交之前调用,以确保
当前状态在提交之前保留在数据库中。ExecutionContextItemReaderItemStreamopenreadItemWriterItemStreamExecutionContextItemReaderItemWritercloseupdateExecutionContext
在特殊情况下,an 的客户端是 (来自 Spring
Batch Core),为每个 StepExecution 创建一个,以允许用户
存储特定执行的状态,如果
同样的事情又开始了。对于熟悉 Quartz 的人来说,语义
与 Quartz 非常相似。ItemStreamStepExecutionContextJobInstanceJobDataMap