task-125: similarasin /result 纯计算移出事务(payload 哈希在 prepare 阶段预计算,落库直接引用)+ 9 条事务边界守门测试
This commit is contained in:
+7
-4
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user