blob: f188017ee7aff648d6e14723f915265fc61ac65d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# frozen_string_literal: true
module Packages
class CleanupPackageFileWorker
include ApplicationWorker
include ::Packages::CleanupArtifactWorker
include Gitlab::Utils::StrongMemoize
data_consistency :always
queue_namespace :package_cleanup
feature_category :package_registry
urgency :low
worker_resource_boundary :unknown
idempotent!
def max_running_jobs
::Gitlab::CurrentSettings.packages_cleanup_package_file_worker_capacity
end
private
def after_destroy
pkg = artifact.package
pkg.transaction do
pkg.destroy if model.for_package_ids(pkg.id).empty?
end
end
def model
Packages::PackageFile
end
def next_item
model.next_pending_destruction
end
def log_metadata(package_file)
log_extra_metadata_on_done(:package_file_id, package_file.id)
log_extra_metadata_on_done(:package_id, package_file.package_id)
end
def log_cleanup_item(package_file)
logger.info(
structured_payload(
package_id: package_file.package_id,
package_file_id: package_file.id
)
)
end
end
end
|