Sha256: 0a9cf91d36673e4396d2450d29500d47637d9c7d3ef94c37ebc2c394801fae8f
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
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 unzip_imported_file(importer.parser) import(importer, only_updates_since_last_import) update_current_run_counters(importer) schedule(importer) if importer.schedulable? rescue CSV::MalformedCSVError => e importer.set_status_info(e) 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_objects end def unzip_imported_file(parser) return unless parser.file? && parser.zip? parser.unzip(parser.parser_fields['import_file_path']) end def update_current_run_counters(importer) importer.current_run.total_work_entries = importer.limit || importer.parser.works_total importer.current_run.total_collection_entries = importer.parser.collections_total importer.current_run.total_file_set_entries = importer.parser.file_sets_total importer.current_run.save! end def schedule(importer) ImporterJob.set(wait_until: importer.next_import_at).perform_later(importer.id, true) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bulkrax-5.1.0 | app/jobs/bulkrax/importer_job.rb |