task-71: 清理日志改为数量与 sample ID,禁止输出超长任务 ID 列表

This commit is contained in:
2026-08-30 19:53:49 +08:00
parent f48407ec7e
commit 6f32ed86e4
2 changed files with 324 additions and 2 deletions
@@ -44,6 +44,7 @@ public class ModuleHistoryCleanupService {
private static final Duration CLEANUP_LOCK_TTL = Duration.ofHours(2);
private static final String COLLECT_DATA_MODULE_TYPE = "COLLECT_DATA";
private static final int DEFAULT_BATCH_SIZE = 500;
private static final int LOG_SAMPLE_IDS = 5;
private final ModuleCleanupProperties moduleCleanupProperties;
private final FileTaskMapper fileTaskMapper;
@@ -166,7 +167,7 @@ public class ModuleHistoryCleanupService {
int deletedRows = deleteRows(types, taskIds, collectDataTaskIds);
submitAndFlush(collected);
log.info("[module-cleanup] batch: taskIds={}, deletedRows={}, collectedPointers={}",
taskIds, deletedRows, collected.size());
formatIdSample(taskIds, LOG_SAMPLE_IDS), deletedRows, collected.size());
});
totalBatches++;
totalDeletedTasks += taskIds.size();
@@ -181,7 +182,8 @@ public class ModuleHistoryCleanupService {
log.info("[module-cleanup] completed: moduleTypes={}, retentionDays={}, cutoff={}, batches={}, deletedTasks={}, collectedPayloadPointers={}, skippedActiveTaskIds={}, retainedTaskIds={}",
moduleTypes, moduleCleanupProperties.getRetentionDays(), cutoff,
totalBatches, totalDeletedTasks, totalCollectedPointers,
skippedActiveTaskIds, skippedRetainedTaskIds);
formatIdSample(skippedActiveTaskIds, LOG_SAMPLE_IDS),
formatIdSample(skippedRetainedTaskIds, LOG_SAMPLE_IDS));
}
}
@@ -285,4 +287,27 @@ public class ModuleHistoryCleanupService {
pointers.add(pointer);
}
}
/**
* 日志用 ID 摘要:只输出数量与最多 {@code sampleLimit} 个样本,
* 禁止把超长任务 ID 列表写进日志。非法上限回退到 1,null/空输出 count=0。
*/
static String formatIdSample(List<Long> ids, int sampleLimit) {
int count = ids == null ? 0 : ids.size();
if (count == 0) {
return "count=0";
}
int limit = Math.max(1, sampleLimit);
StringBuilder sb = new StringBuilder("count=").append(count).append(", sample=[");
for (int i = 0; i < Math.min(count, limit); i++) {
if (i > 0) {
sb.append(',');
}
sb.append(ids.get(i));
}
if (count > limit) {
sb.append(",...");
}
return sb.append(']').toString();
}
}