diff --git a/app/models/batch.rb b/app/models/batch.rb index cf11409..98406b2 100644 --- a/app/models/batch.rb +++ b/app/models/batch.rb @@ -139,18 +139,11 @@ class Batch < ApplicationRecord tokens = items.map { |item| item[:token] } addresses_by_token = Address.where(import_token: tokens).index_by(&:import_token) - Parallel.each(items, in_threads: 8) do |item| - begin - address = addresses_by_token.fetch(item[:token]) + items.each do |item| + address = addresses_by_token.fetch(item[:token]) - ActiveRecord::Base.connection_pool.with_connection do - ActiveRecord::Base.transaction do - build_mapping(item[:row], address) - end - end - rescue => e - Rails.logger.error("Error creating associated records for address in batch #{id}: #{e.message}") - raise + ActiveRecord::Base.transaction do + build_mapping(item[:row], address) end end diff --git a/app/models/letter/batch.rb b/app/models/letter/batch.rb index 31ee3ef..6886f5e 100644 --- a/app/models/letter/batch.rb +++ b/app/models/letter/batch.rb @@ -380,7 +380,7 @@ class Letter::Batch < Batch return unless letters.any? # Preload associations to avoid N+1 queries - preloaded_letters = letters.includes(:address, :usps_mailer_id, :usps_indicium, :return_address) + preloaded_letters = letters.order(:id).includes(:address, :usps_mailer_id, :usps_indicium, :return_address) # Build options for label generation label_options = {}