From 47638de5962316fb0c2c271150e9e1e1a93a929a Mon Sep 17 00:00:00 2001 From: Piotr Milcarz Date: Mon, 12 Apr 2021 16:38:15 +0200 Subject: [PATCH 1/3] Batches in repositories processing --- lib/backup.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/backup.rb b/lib/backup.rb index 6964cc8..f39accb 100644 --- a/lib/backup.rb +++ b/lib/backup.rb @@ -52,8 +52,10 @@ def export(owner_id = nil) process_repo(repository) end else - Repository.order(:id).each do |repository| - process_repo(repository) + Repository.find_in_batches.each do |group| + group.each do |repository| + process_repo(repository) + end end end end From 4d9899147120aebf506a4ee5395747af8ad9275a Mon Sep 17 00:00:00 2001 From: Piotr Milcarz Date: Mon, 12 Apr 2021 18:58:43 +0200 Subject: [PATCH 2/3] Debug --- lib/backup.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/backup.rb b/lib/backup.rb index f39accb..73195e1 100644 --- a/lib/backup.rb +++ b/lib/backup.rb @@ -61,6 +61,7 @@ def export(owner_id = nil) end def process_repo(repository) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength + puts "Processing repository #{repository.id}" repository.builds.where('created_at < ?', @config.delay.to_i.months.ago.to_datetime) .in_groups_of(@config.limit.to_i, false).map do |builds| if builds.count == @config.limit.to_i @@ -68,6 +69,7 @@ def process_repo(repository) # rubocop:disable Metrics/AbcSize, Metrics/MethodLe file_name = "repository_#{repository.id}_builds_#{builds.first.id}-#{builds.last.id}.json" pretty_json = JSON.pretty_generate(builds_export) if upload(file_name, pretty_json) + puts "Uploaded file #{file_name}" BuildBackup.new(repository_id: repository.id, file_name: file_name).save! builds.each(&:destroy) end From 7d4e181012f6a43bf3dda15af3d8ff6a0515a92b Mon Sep 17 00:00:00 2001 From: Piotr Milcarz Date: Fri, 16 Apr 2021 16:58:05 +0200 Subject: [PATCH 3/3] builds in batches too --- lib/backup.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/backup.rb b/lib/backup.rb index 73195e1..2b7a27f 100644 --- a/lib/backup.rb +++ b/lib/backup.rb @@ -63,7 +63,7 @@ def export(owner_id = nil) def process_repo(repository) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength puts "Processing repository #{repository.id}" repository.builds.where('created_at < ?', @config.delay.to_i.months.ago.to_datetime) - .in_groups_of(@config.limit.to_i, false).map do |builds| + .find_in_batches(batch_size: @config.limit.to_i) do |builds| if builds.count == @config.limit.to_i builds_export = export_builds(builds) file_name = "repository_#{repository.id}_builds_#{builds.first.id}-#{builds.last.id}.json"