Sha256: 45289d716775a07406159ab8dd9be8638e690b291f208db27bea2d4b3ba7321f

Contents?: true

Size: 1.37 KB

Versions: 35

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

module Bulkrax
  class ImportWorkJob < ApplicationJob
    queue_as :import

    # rubocop:disable Rails/SkipsModelValidations
    def perform(*args)
      entry = Entry.find(args[0])
      entry.build
      if entry.status == "Complete"
        ImporterRun.find(args[1]).increment!(:processed_records)
        ImporterRun.find(args[1]).increment!(:processed_works)
        ImporterRun.find(args[1]).decrement!(:enqueued_records) unless ImporterRun.find(args[1]).enqueued_records <= 0 # rubocop:disable Style/IdenticalConditionalBranches
      else
        # do not retry here because whatever parse error kept you from creating a work will likely
        # keep preventing you from doing so.
        ImporterRun.find(args[1]).increment!(:failed_records)
        ImporterRun.find(args[1]).increment!(:failed_works)
        ImporterRun.find(args[1]).decrement!(:enqueued_records) unless ImporterRun.find(args[1]).enqueued_records <= 0 # rubocop:disable Style/IdenticalConditionalBranches
      end
      entry.save!
      entry.importer.current_run = ImporterRun.find(args[1])
      entry.importer.record_status
    rescue Bulkrax::CollectionsCreatedError
      reschedule(args[0], args[1])
    end
    # rubocop:enable Rails/SkipsModelValidations

    def reschedule(entry_id, run_id)
      ImportWorkJob.set(wait: 1.minute).perform_later(entry_id, run_id)
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
bulkrax-4.3.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.3.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.2.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.2.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.1.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.1.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-4.0.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.5.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.5.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.4.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.3.2 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.3.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.3.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.2.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.1.2 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.1.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.1.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.0.1 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.0.0 app/jobs/bulkrax/import_work_job.rb
bulkrax-3.0.0.beta8 app/jobs/bulkrax/import_work_job.rb