6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'app/jobs/empty_directory_delete_job.rb', line 6
def perform(work_id:, source_bucket:, source_key:, wait_time: 10)
work = Work.find(work_id)
service = S3QueryService.new(work, work.files_mode)
if service.directory_empty(bucket: source_bucket, key: source_key)
service.delete_s3_object(source_key, bucket: source_bucket)
cleanup(work, service, source_bucket)
else
new_wait_time = wait_time * 10
Rails.logger.warn("Directory is not empty #{source_bucket}#{source_key}. Queuing the delete for #{new_wait_time} seconds from now")
EmptyDirectoryDeleteJob.set(wait: new_wait_time.seconds).perform_later(work_id:, source_bucket:, source_key:, wait_time: new_wait_time)
end
end
|