Sha256: 58eb10ce386a34e80ba81a9e9470967949f77e889c53e10ed0f072b7fe2ea60c

Contents?: true

Size: 816 Bytes

Versions: 3

Compression:

Stored size: 816 Bytes

Contents

# frozen_string_literal: true

module Bulkrax
  class ImporterJob < ApplicationJob
    queue_as :import

    def perform(importer_id, only_updates_since_last_import = false)
      importer = Importer.find(importer_id)
      importer.current_run
      import(importer, only_updates_since_last_import)
      schedule(importer) if importer.schedulable?
    end

    def import(importer, only_updates_since_last_import)
      importer.only_updates = only_updates_since_last_import || false
      return unless importer.valid_import?
      importer.import_collections
      importer.import_works
      importer.create_parent_child_relationships unless importer.validate_only
    end

    def schedule(importer)
      ImporterJob.set(wait_until: importer.next_import_at).perform_later(importer.id, true)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bulkrax-1.0.2 app/jobs/bulkrax/importer_job.rb
bulkrax-1.0.1 app/jobs/bulkrax/importer_job.rb
bulkrax-1.0.0 app/jobs/bulkrax/importer_job.rb