diff --git a/app/models/solid_queue/claimed_execution.rb b/app/models/solid_queue/claimed_execution.rb index d4abf45a..11aba177 100644 --- a/app/models/solid_queue/claimed_execution.rb +++ b/app/models/solid_queue/claimed_execution.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class SolidQueue::ClaimedExecution < SolidQueue::Execution - belongs_to :process + belongs_to :process, strict_loading: false scope :orphaned, -> { where.missing(:process) } diff --git a/app/models/solid_queue/execution.rb b/app/models/solid_queue/execution.rb index e56a6b3e..0974ca24 100644 --- a/app/models/solid_queue/execution.rb +++ b/app/models/solid_queue/execution.rb @@ -10,7 +10,7 @@ class UndiscardableError < StandardError; end scope :ordered, -> { order(priority: :asc, job_id: :asc) } - belongs_to :job + belongs_to :job, strict_loading: false class << self def type diff --git a/app/models/solid_queue/job/concurrency_controls.rb b/app/models/solid_queue/job/concurrency_controls.rb index 6ae12e28..f668e989 100644 --- a/app/models/solid_queue/job/concurrency_controls.rb +++ b/app/models/solid_queue/job/concurrency_controls.rb @@ -6,7 +6,7 @@ module ConcurrencyControls extend ActiveSupport::Concern included do - has_one :blocked_execution + has_one :blocked_execution, strict_loading: false delegate :concurrency_limit, :concurrency_duration, to: :job_class diff --git a/app/models/solid_queue/job/executable.rb b/app/models/solid_queue/job/executable.rb index e2146a67..10fabd01 100644 --- a/app/models/solid_queue/job/executable.rb +++ b/app/models/solid_queue/job/executable.rb @@ -8,8 +8,8 @@ module Executable included do include ConcurrencyControls, Schedulable, Retryable - has_one :ready_execution - has_one :claimed_execution + has_one :ready_execution, strict_loading: false + has_one :claimed_execution, strict_loading: false after_create :prepare_for_execution diff --git a/app/models/solid_queue/job/recurrable.rb b/app/models/solid_queue/job/recurrable.rb index 6d70dc44..5cc07140 100644 --- a/app/models/solid_queue/job/recurrable.rb +++ b/app/models/solid_queue/job/recurrable.rb @@ -6,7 +6,7 @@ module Recurrable extend ActiveSupport::Concern included do - has_one :recurring_execution, dependent: :destroy + has_one :recurring_execution, strict_loading: false, dependent: :destroy end end end diff --git a/app/models/solid_queue/job/retryable.rb b/app/models/solid_queue/job/retryable.rb index 34eb9e4d..59e45a82 100644 --- a/app/models/solid_queue/job/retryable.rb +++ b/app/models/solid_queue/job/retryable.rb @@ -6,7 +6,7 @@ module Retryable extend ActiveSupport::Concern included do - has_one :failed_execution + has_one :failed_execution, strict_loading: false scope :failed, -> { includes(:failed_execution).where.not(failed_execution: { id: nil }) } end diff --git a/app/models/solid_queue/job/schedulable.rb b/app/models/solid_queue/job/schedulable.rb index 8ce2a4a9..d28e608e 100644 --- a/app/models/solid_queue/job/schedulable.rb +++ b/app/models/solid_queue/job/schedulable.rb @@ -6,7 +6,7 @@ module Schedulable extend ActiveSupport::Concern included do - has_one :scheduled_execution + has_one :scheduled_execution, strict_loading: false scope :scheduled, -> { where(finished_at: nil) } end diff --git a/app/models/solid_queue/process.rb b/app/models/solid_queue/process.rb index e81edc14..0ec47950 100644 --- a/app/models/solid_queue/process.rb +++ b/app/models/solid_queue/process.rb @@ -3,8 +3,8 @@ class SolidQueue::Process < SolidQueue::Record include Executor, Prunable - belongs_to :supervisor, class_name: "SolidQueue::Process", optional: true, inverse_of: :supervisees - has_many :supervisees, class_name: "SolidQueue::Process", inverse_of: :supervisor, foreign_key: :supervisor_id + belongs_to :supervisor, class_name: "SolidQueue::Process", optional: true, inverse_of: :supervisees, strict_loading: false + has_many :supervisees, class_name: "SolidQueue::Process", inverse_of: :supervisor, foreign_key: :supervisor_id, strict_loading: false store :metadata, coder: JSON diff --git a/test/dummy/config/application.rb b/test/dummy/config/application.rb index 502f70cb..3aa79b36 100644 --- a/test/dummy/config/application.rb +++ b/test/dummy/config/application.rb @@ -29,6 +29,8 @@ class Application < Rails::Application config.active_job.queue_adapter = :solid_queue + config.active_record.strict_loading_by_default = true + if ENV["SEPARATE_CONNECTION"] && ENV["TARGET_DB"] != "sqlite" config.solid_queue.connects_to = { database: { writing: :primary, reading: :replica } } end