diff options
author | Paco Guzman <pacoguzmanp@gmail.com> | 2016-10-07 11:11:02 +0200 |
---|---|---|
committer | Paco Guzman <pacoguzmanp@gmail.com> | 2016-10-07 15:33:58 +0200 |
commit | 9afb2dac5c9f49f9f7943053b50a3808a99fdf6b (patch) | |
tree | 0e583ce91adc1af29c327c2bebe856640dfdbcda /app/workers/expire_build_artifacts_worker.rb | |
parent | c2cf1dd6c771ee3a181fa9704da593daa825c58a (diff) | |
download | gitlab-ce-9afb2dac5c9f49f9f7943053b50a3808a99fdf6b.tar.gz |
ExpireBuildArtifactsWorker query builds table without ordering enqueuing one job per build to cleanup23096-expire-artifacts-per-job
We use Sidekiq::Client.push_bulk to avoid Redis round trips
Diffstat (limited to 'app/workers/expire_build_artifacts_worker.rb')
-rw-r--r-- | app/workers/expire_build_artifacts_worker.rb | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/app/workers/expire_build_artifacts_worker.rb b/app/workers/expire_build_artifacts_worker.rb index c64ea108d52..174eabff9fd 100644 --- a/app/workers/expire_build_artifacts_worker.rb +++ b/app/workers/expire_build_artifacts_worker.rb @@ -2,12 +2,11 @@ class ExpireBuildArtifactsWorker include Sidekiq::Worker def perform - Rails.logger.info 'Cleaning old build artifacts' + Rails.logger.info 'Scheduling removal of build artifacts' - builds = Ci::Build.with_expired_artifacts - builds.find_each(batch_size: 50).each do |build| - Rails.logger.debug "Removing artifacts build #{build.id}..." - build.erase_artifacts! - end + build_ids = Ci::Build.with_expired_artifacts.pluck(:id) + build_ids = build_ids.map { |build_id| [build_id] } + + Sidekiq::Client.push_bulk('class' => ExpireBuildInstanceArtifactsWorker, 'args' => build_ids ) end end |