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