spring-batch - 重新启动时如何从 RDBMS 批处理元数据表加载步骤执行上下文?
问题描述
我知道步骤执行上下文被加载到内存映射中,然后加载到batch_step_execution_context
表的short_context
列中,当作业重新启动时,相同的内存映射执行上下文会自动为我们加载重新启动的作业。但是,当内存映射被擦除后触发重启时(例如:应用程序重启),我知道它是从批处理元数据 RDBMS 表(准确地说,batch_step_execution_context
表)中加载的。我的问题是 - 由于列长度为 2500,spring batch 会截断数据并在内容中添加一个省略号,如果我输入的数据超过 2500 个字符怎么办?它如何能够加载原始数据(不是用省略号截断的数据)?
PS:如大多数示例所示,我使用此步骤执行上下文将预期分区的标识符传递给我的读者。
请帮助我了解框架中如何处理这一点。谢谢。
解决方案
执行上下文首先从上下文的完整版本中反序列化,请参见此处。如果您使用持久作业存储库并重新启动相同的作业实例,则默认情况下应自动保存/加载分区步骤的重新启动元数据。
推荐阅读
- android - 在 Flutter 或任何 OOPls 中,何时在方法中使用 void 或特定数据类型?
- algorithm - CRS格式的稀疏矩阵乘法
- python - 用列表列表屏蔽两列(Pandas df)
- r - 使用 R 中 k 的奇数值介于 1 和 21(含)之间的类包执行 KNN
- javascript - 如何使用带有 json 的 javascript 从站点中提取信息?
- jndi - JNDI,使用没有用户/密码的 Persistence.xml,仅从独立的 RMI 获得 DataSource
- asp.net - 为什么我的 Web Api(完整框架)项目不会生成 Xml 文档文件
- django - 无法通过虚拟机内的 Nginx 代理到 Websocket
- ssh - 如何使用 SSH 使用密码连接到 GCP VM 实例?
- spring-boot - 如何在保留旧参数的同时添加参数 URL?