diff --git a/ee/app/workers/vulnerabilities/remove_all_vulnerabilities_worker.rb b/ee/app/workers/vulnerabilities/remove_all_vulnerabilities_worker.rb index 1ddfacbc571c7bb463a301e8e3d5c57f2b2622c5..8b24637fdd61f24a7f01b3e61a17197ec8814c23 100644 --- a/ee/app/workers/vulnerabilities/remove_all_vulnerabilities_worker.rb +++ b/ee/app/workers/vulnerabilities/remove_all_vulnerabilities_worker.rb @@ -53,30 +53,31 @@ def perform(project_id) private - # rubocop:disable Style/SymbolProc -- for some reason, using &:delete_all fails with wrong number of arguments def drop_by_project_id(project_id) MODELS_TO_DROP_BY_PROJECT_ID.each do |model| - model - .by_projects(project_id) - .each_batch(of: BATCH_SIZE) { |b| b.delete_all } + loop do + deleted = model.by_projects(project_id).limit(BATCH_SIZE).delete_all + break if deleted == 0 + end end end def drop_by_finding_id(finding_ids) MODELS_TO_DROP_BY_FINDING_ID.each do |model| - model - .by_finding_id(finding_ids) - .each_batch(of: BATCH_SIZE) { |b| b.delete_all } + loop do + deleted = model.by_finding_id(finding_ids).limit(BATCH_SIZE).delete_all + break if deleted == 0 + end end end def drop_by_vulnerability_id(vulnerability_ids) MODELS_TO_DROP_BY_VULNERABILITY_ID.each do |model| - model - .by_vulnerability(vulnerability_ids) - .each_batch(of: BATCH_SIZE) { |b| b.delete_all } + loop do + deleted = model.by_vulnerability(vulnerability_ids).limit(BATCH_SIZE).delete_all + break if deleted == 0 + end end end - # rubocop:enable Style/SymbolProc end end