[Rails 5] Preventing ActiveRecord "deadlock" - grosser/parallel GitHub Wiki

From: https://github.com/rails/rails/issues/27025

data = [1, 2, 3] 
failures = []

ActiveSupport::Dependencies.interlock.permit_concurrent_loads do # Required outside Parallel
  Parallel.map(data, in_threads: 5) do |item|
    Rails.application.executor.wrap do # Required inside Parallel
      puts "ParallelMapper instance: work_in_threads: #{item}"
      failures << CollaboratorOne.create!(item) # Requires in_threads; Similar to Queue.new
    end
  end
end

unless failures.empty?
  raise("Found the following failures: #{failures}")
end