dev delete async
Test Workflow / test (push) Successful in 3s

This commit is contained in:
vladp
2026-04-09 11:03:31 +07:00
parent aef2c1dfe0
commit 31140e810b
2 changed files with 7 additions and 16 deletions
@@ -6,8 +6,6 @@ import ru.soune.nocopy.entity.file.FileEntity;
import ru.soune.nocopy.entity.file.FileStatus; import ru.soune.nocopy.entity.file.FileStatus;
import ru.soune.nocopy.entity.file.FileUploadSession; import ru.soune.nocopy.entity.file.FileUploadSession;
import java.io.IOException;
public interface FileUploadService { public interface FileUploadService {
FileUploadSession initUpload(Long userId, String fileName, FileUploadSession initUpload(Long userId, String fileName,
String fileType, String extension, String convertTo, long fileSize); String fileType, String extension, String convertTo, long fileSize);
@@ -20,5 +18,5 @@ public interface FileUploadService {
UploadProgressResponse getUploadProgress(String uploadId); UploadProgressResponse getUploadProgress(String uploadId);
FileEntity completeFileProcessingAsync(FileUploadSession session, FileStatus status); FileEntity completeFileProcessing(FileUploadSession session, FileStatus status);
} }
@@ -226,11 +226,9 @@ public class FileUploadServiceImpl implements FileUploadService {
return UploadProgressResponse.fromSession(session); return UploadProgressResponse.fromSession(session);
} }
@Async("fileUploadTaskExecutor")
@Transactional @Transactional
@Override @Override
public FileEntity completeFileProcessingAsync(FileUploadSession session, FileStatus status) { public FileEntity completeFileProcessing(FileUploadSession session, FileStatus status) {
FileEntity saved = null;
try { try {
Path filePath = Paths.get(session.getFilePath()); Path filePath = Paths.get(session.getFilePath());
String checksum = calculateChecksum(filePath); String checksum = calculateChecksum(filePath);
@@ -249,11 +247,10 @@ public class FileUploadServiceImpl implements FileUploadService {
.status(status) .status(status)
.build(); .build();
saved = fileEntityRepository.save(fileEntity); FileEntity saved = fileEntityRepository.save(fileEntity);
if (session.getFileType().equals("image")) { if (session.getFileType().equals("image")) {
Map<String, Long> hash = imageHashService.calculateHash(filePath); Map<String, Long> hash = imageHashService.calculateHash(filePath);
imageHashService.create(saved, hash); imageHashService.create(saved, hash);
} }
@@ -261,17 +258,17 @@ public class FileUploadServiceImpl implements FileUploadService {
if (status != FileStatus.TEMP) { if (status != FileStatus.TEMP) {
FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, session.getConvertTo()); FileProtector.FileInfo fileInfo = fileUtil.createFileInfo(fileEntity, session.getConvertTo());
noCopyFileService.addFile(fileInfo); noCopyFileService.addFile(fileInfo);
} }
log.info("File processing completed for session: {}", session.getUploadId()); log.info("File processing completed for session: {}", session.getUploadId());
return saved;
} catch (Exception e) { } catch (Exception e) {
log.error("Failed to complete file processing for session {}: {}", log.error("Failed to complete file processing for session {}: {}",
session.getUploadId(), e.getMessage(), e); session.getUploadId(), e.getMessage(), e);
throw new FileUploadException("Failed to complete file processing", e);
} }
return saved;
} }
private void validateSession(FileUploadSession session) { private void validateSession(FileUploadSession session) {
@@ -386,11 +383,7 @@ public class FileUploadServiceImpl implements FileUploadService {
fileEntityService.clearTempFiles(session.getUserId()); fileEntityService.clearTempFiles(session.getUserId());
} }
FileEntity fileEntity = completeFileProcessingAsync(session, status); FileEntity fileEntity = completeFileProcessing(session, status);
fileEntityRepository.flush();
entityManager.clear();
cloudStorageService.saveFilesToStorage(fileEntity.getMimeType(), fileEntity.getFileExtension(), cloudStorageService.saveFilesToStorage(fileEntity.getMimeType(), fileEntity.getFileExtension(),
fileEntity.getFilePath()); fileEntity.getFilePath());