From 38db6d3dd218a8d72b1a40019321a0aa9c847261 Mon Sep 17 00:00:00 2001 From: Anusha Ranganathan <anusha@cottagelabs.com> Date: Wed, 22 May 2024 11:44:03 +0100 Subject: [PATCH] Find failed entries for count and rake task --- hyrax/app/helpers/bulkrax_helper.rb | 12 ++++++++---- .../lib/tasks/rerun_failed_entries_in_importer.rake | 12 ++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 hyrax/lib/tasks/rerun_failed_entries_in_importer.rake diff --git a/hyrax/app/helpers/bulkrax_helper.rb b/hyrax/app/helpers/bulkrax_helper.rb index 317620b3..d5a0d9ea 100644 --- a/hyrax/app/helpers/bulkrax_helper.rb +++ b/hyrax/app/helpers/bulkrax_helper.rb @@ -2,13 +2,17 @@ module BulkraxHelper def rerun_failed_entries_in_last_run current_run = @importer.last_run - if current_run&.failed_records&.positive? + failed_entries = [] + @importer.entries.each do |entry| + next if entry.status == 'Complete' + failed_entries << entry + end + + if failed_entries.any? ::Bulkrax::ScheduleRelationshipsJob.set(wait: 5.minutes).perform_later(importer_id: @importer.id) @importer.status_info('Pending') - @importer.entries.each do |entry| - next if entry.status == 'Complete' - + failed_entries.each do |entry| type = if entry.raw_metadata['model'] == 'CrcDataset' 'Work' else diff --git a/hyrax/lib/tasks/rerun_failed_entries_in_importer.rake b/hyrax/lib/tasks/rerun_failed_entries_in_importer.rake new file mode 100644 index 00000000..db6fb3c1 --- /dev/null +++ b/hyrax/lib/tasks/rerun_failed_entries_in_importer.rake @@ -0,0 +1,12 @@ +namespace :rdms do + desc 'Rerun failed entries in last run of importer. usage: rdms:rerun_failed_entries_in_importer[importer_id]' + task :"rerun_failed_entries_in_importer", [:importer_id] => :environment do |task, args| + importer_id = args.importer_id + abort("ERROR: missing importer_id: #{importer_id}") unless importer_id.present? + importer_id = importer_id.to_s.strip + abort("ERROR: importer_id is not an integer: #{importer_id}") unless importer_id.to_i.to_s == importer_id + @importer = ::Bulkrax::Importer.find(importer_id) + include BulkraxHelper + rerun_failed_entries_in_last_run + end +end \ No newline at end of file -- GitLab