task-125: similarasin /result 纯计算移出事务(payload 哈希在 prepare 阶段预计算,落库直接引用)+ 9 条事务边界守门测试

This commit is contained in:
2026-09-02 03:34:15 +08:00
parent 56afee0386
commit 79b3efd365
2 changed files with 325 additions and 4 deletions
@@ -1030,15 +1030,17 @@ public class SimilarAsinTaskService {
if (existing != null) {
return new PreparedSubmittedChunk(
taskId, scopeKey, scopeHash, chunkIndex, chunkTotal, done, request.getError(),
null, null, false, taskMetadata);
null, null, false, taskMetadata, null);
}
String payloadJson = writeJson(flattenSubmittedRows(request), "结果序列化失败");
String storedPayload = transientPayloadStorageService.storeChunkPayloadVersioned(
MODULE_TYPE, taskId, scopeHash, chunkIndex, payloadJson);
boolean localFallback = transientPayloadStorageService.wasLastStoreLocalFallback();
// 纯计算在事务外完成payload 哈希预计算persist 落库时直接引用
return new PreparedSubmittedChunk(
taskId, scopeKey, scopeHash, chunkIndex, chunkTotal, done, request.getError(),
payloadJson, storedPayload, localFallback, taskMetadata);
payloadJson, storedPayload, localFallback, taskMetadata,
DigestUtil.sha256Hex(payloadJson));
}
private SubmittedTaskMetadata readSubmittedTaskMetadata(FileTaskEntity task) {
@@ -1146,7 +1148,7 @@ public class SimilarAsinTaskService {
chunk.setChunkIndex(prepared.chunkIndex());
chunk.setChunkTotal(prepared.chunkTotal());
chunk.setPayloadJson(prepared.storedPayload());
chunk.setPayloadHash(DigestUtil.sha256Hex(prepared.payloadJson()));
chunk.setPayloadHash(prepared.payloadHash());
chunk.setCreatedAt(LocalDateTime.now());
chunk.setUpdatedAt(LocalDateTime.now());
try {
@@ -5750,7 +5752,8 @@ public class SimilarAsinTaskService {
String payloadJson,
String storedPayload,
boolean localFallback,
SubmittedTaskMetadata taskMetadata) {
SubmittedTaskMetadata taskMetadata,
String payloadHash) {
}
private record PersistSubmittedChunkResult(SubmitContext context,