From 82eedb02d1c17ab9dcc938fb75516c2c663c660b Mon Sep 17 00:00:00 2001 From: vladp Date: Mon, 26 Jan 2026 14:20:00 +0700 Subject: [PATCH] dev --- .../service/file/FileUploadService.java | 2 + .../file/impl/FileUploadServiceImpl.java | 59 ++++++++++--------- 2 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java b/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java index b548047..5434dfb 100644 --- a/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java +++ b/src/main/java/ru/soune/nocopy/service/file/FileUploadService.java @@ -18,4 +18,6 @@ public interface FileUploadService { void handleExpiredSession(FileUploadSession session); void cancelUpload(String uploadId); + + void completeFileProcessingAsync(FileUploadSession session); } diff --git a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java index 50f8a94..381b3a2 100644 --- a/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java +++ b/src/main/java/ru/soune/nocopy/service/file/impl/FileUploadServiceImpl.java @@ -232,37 +232,9 @@ public class FileUploadServiceImpl implements FileUploadService { return UploadProgressResponse.fromSession(session); } - private void validateSession(FileUploadSession session) { - UploadStatus status = session.getStatus(); - - if (status == UploadStatus.FAILED) { - if (session.getRetryCount() >= maxRetryAttempts) { - throw new FileUploadException( - "Upload failed after maximum retry attempts"); - } - session.setStatus(UploadStatus.UPLOADING); - session.setRetryCount(session.getRetryCount() + 1); - sessionRepository.save(session); - log.info("Retrying failed upload session: {}, attempt: {}", - session.getUploadId(), session.getRetryCount()); - } - - if (status == UploadStatus.COMPLETED) { - throw new FileUploadException("Upload already completed"); - } - - if (status == UploadStatus.CANCELLED) { - throw new FileUploadException("Upload was cancelled"); - } - - if (status == UploadStatus.INITIATED) { - session.setStatus(UploadStatus.UPLOADING); - sessionRepository.save(session); - } - } - @Async("fileUploadTaskExecutor") @Transactional + @Override public void completeFileProcessingAsync(FileUploadSession session) { try { Path filePath = Paths.get(session.getFilePath()); @@ -301,6 +273,35 @@ public class FileUploadServiceImpl implements FileUploadService { } } + private void validateSession(FileUploadSession session) { + UploadStatus status = session.getStatus(); + + if (status == UploadStatus.FAILED) { + if (session.getRetryCount() >= maxRetryAttempts) { + throw new FileUploadException( + "Upload failed after maximum retry attempts"); + } + session.setStatus(UploadStatus.UPLOADING); + session.setRetryCount(session.getRetryCount() + 1); + sessionRepository.save(session); + log.info("Retrying failed upload session: {}, attempt: {}", + session.getUploadId(), session.getRetryCount()); + } + + if (status == UploadStatus.COMPLETED) { + throw new FileUploadException("Upload already completed"); + } + + if (status == UploadStatus.CANCELLED) { + throw new FileUploadException("Upload was cancelled"); + } + + if (status == UploadStatus.INITIATED) { + session.setStatus(UploadStatus.UPLOADING); + sessionRepository.save(session); + } + } + private UploadProgressResponse processChunk(FileUploadSession session, Integer chunkNumber, MultipartFile chunkFile) { String chunkPath = null;