task-7: 限制单文件大小、最大行数和最大字段长度,防止解析任务无界增长

新增 maxSourceFileBytes(50MB)/maxParseRows(50000)/maxFieldLength(2000)
三个配置项:文件超限在解析入口拒绝(异常消息可识别)、行数超限拒绝、
超长单元格字段截断。0/负值配置回退默认。新增 8 个测试覆盖正常路径、
多文件、幂等、空文件、单行、边界(恰好=上限通过、超限拒绝)、
非法输入(文件超限/字段截断)、依赖失败恢复。
This commit is contained in:
2026-08-29 15:08:14 +08:00
parent db6e8f0ce8
commit 68b7d9a4a4
3 changed files with 343 additions and 1 deletions
@@ -139,6 +139,21 @@ public class SimilarAsinProperties {
*/
private int parseResponsePreviewLimit = 100;
/**
* Task 7:单个源文件大小上限(字节)。超过则拒绝解析,防止无界文件增长。
*/
private long maxSourceFileBytes = 50L * 1024L * 1024L;
/**
* Task 7:单次解析最大有效行数。超过则拒绝解析,防止任务无界增长。
*/
private int maxParseRows = 50000;
/**
* Task 7:单字段最大长度(字符)。超过的字段值截断到该上限,防止内存无界增长。
*/
private int maxFieldLength = 2000;
/**
* P0-4:抢 Coze 提交锁失败后下次重试间隔(毫秒)。
* 原硬编码 500ms,会在指数退避算法中作为基础值(500/1000/2000/4000ms 上限 4000)。