Class: Gitlab::Cleanup::OrphanJobArtifactFinalObjects::ProcessList

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/cleanup/orphan_job_artifact_final_objects/process_list.rb

Constant Summary collapse

BATCH_SIZE =
Rails.env.development? ? 5 : 1000
DELETED_LIST_FILENAME_PREFIX =
'deleted_from--'
CURSOR_TRACKER_REDIS_KEY_PREFIX =
'orphan-job-artifact-objects-cleanup-cursor-tracker--'

Instance Method Summary collapse

Constructor Details

#initialize(filename: nil, force_restart: false, logger: Gitlab::AppLogger) ⇒ ProcessList

Returns a new instance of ProcessList.



11
12
13
14
15
16
17
# File 'lib/gitlab/cleanup/orphan_job_artifact_final_objects/process_list.rb', line 11

def initialize(filename: nil, force_restart: false, logger: Gitlab::AppLogger)
  @force_restart = force_restart
  @logger = logger
  @orphan_list_filename = filename || GenerateList::DEFAULT_FILENAME
  @deleted_list_filename = build_deleted_list_filename
  @cursor_tracker_key = build_cursor_tracker_key
end

Instance Method Details

#run!Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/gitlab/cleanup/orphan_job_artifact_final_objects/process_list.rb', line 19

def run!
  log_info("Processing #{orphan_list_filename}...")

  initialize_files

  each_batch do |entries|
    orphans_from_batch(entries).each do |fog_file|
      delete_orphan_object(fog_file)
    end
  end

  log_info("Done. All deleted objects are listed in #{deleted_list_filename}.")
ensure
  orphan_list_file&.close
  deleted_list_file&.close
end