summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatija Čupić <matteeyah@gmail.com>2019-07-23 14:17:21 +0200
committerMatija Čupić <matteeyah@gmail.com>2019-08-29 01:20:50 +0200
commit669f812c860efdc601c967b787b35de38da3826b (patch)
tree06966719c3fa53aad51ba5230d0921e8ec7bc6ff
parenta315a178cf2fc757ef450d147b61e5c17ca70ee3 (diff)
downloadgitlab-ce-669f812c860efdc601c967b787b35de38da3826b.tar.gz
Make artifact file deletion asynchronous
-rw-r--r--app/models/ci/job_artifact.rb3
-rw-r--r--app/workers/ci/delete_stored_artifacts_worker.rb11
2 files changed, 13 insertions, 1 deletions
diff --git a/app/models/ci/job_artifact.rb b/app/models/ci/job_artifact.rb
index 6b0b1ed5ecc..2ddfbbb686f 100644
--- a/app/models/ci/job_artifact.rb
+++ b/app/models/ci/job_artifact.rb
@@ -157,7 +157,8 @@ module Ci
def finalize_fast_destroy(params)
params.each do |project, artifact_files|
delta = artifact_files.sum(&:size)
- artifact_files.each(&:remove!)
+
+ Ci::DeleteStoredArtifactsWorker.perform_async(artifact_files)
update_project_statistics!(project, :build_artifacts_size, -delta)
end
diff --git a/app/workers/ci/delete_stored_artifacts_worker.rb b/app/workers/ci/delete_stored_artifacts_worker.rb
new file mode 100644
index 00000000000..b4f26b40671
--- /dev/null
+++ b/app/workers/ci/delete_stored_artifacts_worker.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module Ci
+ class DeleteStoredArtifactsWorker
+ include ApplicationWorker
+
+ def perform(artifact_files)
+ artifact_files.each(&:remove!)
+ end
+ end
+end