pjhcsols / VirtualFitting_System

가상피팅&의류입점 플랫폼
4 stars 0 forks source link

[BE_2] Product Image URL & S3 Image : Batch Job Scheduler #26

Closed pjhcsols closed 2 months ago

pjhcsols commented 2 months ago

주기적으로 실행되는 작업으로, 사용하지 않는 상품 이미지를 데이터베이스와 S3 스토리지에서 삭제하는 기능을 수행합니다. 이를 위해 다음과 같은 로직을 따릅니다:

deleteUnusedProductImages() 메서드는 @Scheduled 어노테이션에 의해 주기적으로 실행됩니다. 초기 지연 후에 시작하며, 그 이후에는 지정된 시간 간격으로 실행됩니다.

먼저, ProductService와 S3StorageService를 사용하여 데이터베이스에서 모든 상품 이미지 URL과 S3 스토리지에서 모든 이미지 URL을 가져옵니다. 가져온 데이터베이스 URL과 S3 스토리지 URL을 로깅하여 확인합니다. 이후, s3Urls 리스트를 스트림으로 변환하고, filter() 함수를 사용하여 해당 URL이 databaseUrls에 포함되지 않는 경우만을 필터링합니다. 이를 통해 데이터베이스에 없는 URL들만을 포함하는 새로운 리스트 urlsToDelete를 생성합니다. urlsToDelete에 있는 URL들을 사용하여 S3 스토리지에서 이미지를 삭제합니다. 작업이 완료되면 완료 메시지를 로깅합니다.

주기적으로 실행되는 이 작업을 통해 데이터베이스와 S3 스토리지에서 상품 이미지를 효율적으로 관리하고 불필요한 이미지를 삭제할 수 있습니다.

pjhcsols commented 2 months ago

Feat: ProductImageScheduler & S3 스토리지 관리 구현[박한솔]