diff options
Diffstat (limited to 'app/workers/remove_unreferenced_lfs_objects_worker.rb')
-rw-r--r-- | app/workers/remove_unreferenced_lfs_objects_worker.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/workers/remove_unreferenced_lfs_objects_worker.rb b/app/workers/remove_unreferenced_lfs_objects_worker.rb index b42883549ca..ca4b70a0485 100644 --- a/app/workers/remove_unreferenced_lfs_objects_worker.rb +++ b/app/workers/remove_unreferenced_lfs_objects_worker.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RemoveUnreferencedLfsObjectsWorker # rubocop:disable Scalability/IdempotentWorker +class RemoveUnreferencedLfsObjectsWorker include ApplicationWorker sidekiq_options retry: 3 @@ -10,8 +10,16 @@ class RemoveUnreferencedLfsObjectsWorker # rubocop:disable Scalability/Idempoten # rubocop:enable Scalability/CronWorkerContext feature_category :git_lfs + deduplicate :until_executed + idempotent! def perform - LfsObject.destroy_unreferenced + number_of_removed_files = 0 + + LfsObject.unreferenced_in_batches do |lfs_objects_without_projects| + number_of_removed_files += lfs_objects_without_projects.destroy_all.count # rubocop: disable Cop/DestroyAll + end + + number_of_removed_files end end |