task-37
This commit is contained in:
+22
-1
@@ -1571,7 +1571,8 @@ public class ShopDataCrawlTaskService {
|
||||
return;
|
||||
}
|
||||
snapshot.setShopName(firstNonBlank(payload.getShopName(), snapshot.getShopName()));
|
||||
snapshot.setCountryResults(copyCountryResults(payload.getCountryResults()));
|
||||
// 按国家增量合并:本次未回传的国家保留快照中的旧结果,同一国家按行去重合并
|
||||
snapshot.setCountryResults(mergeCountryResults(snapshot.getCountryResults(), payload.getCountryResults()));
|
||||
if (!blank(payload.getError())) {
|
||||
snapshot.setError(payload.getError().trim());
|
||||
}
|
||||
@@ -2327,6 +2328,26 @@ public class ShopDataCrawlTaskService {
|
||||
return;
|
||||
}
|
||||
deleteTransientResultChunks(job.getTaskId());
|
||||
// Task 37:异步文件作业成功钩子——组装作业完成后显式刷新任务状态:
|
||||
// 仍有未完成组装作业则保持 RUNNING,全部完成才进入终态。
|
||||
// (worker 在 markSuccess 后、任务锁内调用本方法,此处刷新与提交是安全的。)
|
||||
if ("SUCCESS".equals(job.getStatus())) {
|
||||
refreshTaskStatusAfterAssembleJob(job.getTaskId());
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshTaskStatusAfterAssembleJob(Long taskId) {
|
||||
FileTaskEntity task = fileTaskMapper.selectById(taskId);
|
||||
if (task == null || !MODULE_TYPE.equals(task.getModuleType())) {
|
||||
return;
|
||||
}
|
||||
List<FileResultEntity> rows = listTaskRows(taskId);
|
||||
if (rows.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
updateTaskStatusFromRows(task, rows);
|
||||
fileTaskMapper.updateById(task);
|
||||
taskCacheService.deleteTaskCache(taskId);
|
||||
}
|
||||
|
||||
private void deleteTransientResultChunks(Long taskId) {
|
||||
|
||||
Reference in New Issue
Block a user