gpt4 book ai didi

java - 如何处理过大的 Spring Batch 步骤执行上下文?

转载 作者:行者123 更新时间:2023-11-29 12:25:25 26 4
gpt4 key购买 nike

我一直在使用 Spring Batch,到目前为止一切都运行良好。不过最近,我们遇到了与步骤执行上下文相关的问题。错误如下:

Encountered an error saving batch meta data for step generatePlacementSupplement in job vodPlacementJob. This job is now in an unknown state and should not be restarted. org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [UPDATE BATCH_STEP_EXECUTION_CONTEXT SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? WHERE STEP_EXECUTION_ID = ?]; ERROR: invalid input syntax for type oid

我已经尝试将 Spring Batch 执行上下文表更改为 TEXT 数据类型,并将 VARCHAR 限制更改为 10k 而不是 2500。这些方法似乎都没有解决任何问题。我认为这是一个空间问题,因为我们传递了相当多的参数,但添加更多空间并没有解决问题。

离开 Postgres 数据库并使用内存解决方案是否是最好的选择?

最佳答案

我认为您会发现 Spring Batch 源代码实际上知道列大小(具有它们的常量)并将截断数据以适应列大小。甚至有一些方法可以用来覆盖默认值。覆盖这些东西是否是个好主意我会让你决定,但我相信这是可能的。 (所以我是说你不仅要更改数据库列,还要弄乱 Spring Batch 源代码,或者至少调用一些 API 来告诉它你已经增加了数据库列的大小。)

关于java - 如何处理过大的 Spring Batch 步骤执行上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com