diff options
author | Matija Čupić <matteeyah@gmail.com> | 2019-07-23 14:17:21 +0200 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2019-08-29 01:20:50 +0200 |
commit | 669f812c860efdc601c967b787b35de38da3826b (patch) | |
tree | 06966719c3fa53aad51ba5230d0921e8ec7bc6ff | |
parent | a315a178cf2fc757ef450d147b61e5c17ca70ee3 (diff) | |
download | gitlab-ce-669f812c860efdc601c967b787b35de38da3826b.tar.gz |
Make artifact file deletion asynchronous
-rw-r--r-- | app/models/ci/job_artifact.rb | 3 | ||||
-rw-r--r-- | app/workers/ci/delete_stored_artifacts_worker.rb | 11 |
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 |