task-71: 清理日志改为数量与 sample ID,禁止输出超长任务 ID 列表
This commit is contained in:
+27
-2
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user