Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions lib/solid_queue/processes/poller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ module Poller

private
def with_polling_volume
if SolidQueue.silence_polling?
ActiveRecord::Base.logger.silence { yield }
if SolidQueue.silence_polling? && ActiveRecord::Base.logger
if ActiveRecord::Base.logger.respond_to?(:silence)
ActiveRecord::Base.logger.silence { yield }
else
ActiveRecord::Base.with(logger: Logger.new("/dev/null") { yield }
end
else
yield
end
Expand Down
35 changes: 35 additions & 0 deletions test/integration/processes_poller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# frozen_string_literal: true

require "test_helper"

class ProcessPollerTest < ActiveSupport::TestCase
def test_active_record_logger_nil
previous_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil
pid = fork { SolidQueue::Supervisor.start }
sleep 1
ensure
ActiveRecord::Base.logger = previous_logger
terminate_process(pid) if pid && process_exists?(pid)
end

def test_active_record_logger_logger_dev_null
previous_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = Logger.new("/dev/null")
pid = fork { SolidQueue::Supervisor.start }
sleep 1
ensure
ActiveRecord::Base.logger = previous_logger
terminate_process(pid) if pid && process_exists?(pid)
end

def test_active_record_logger_active_support_logger_dev_null
previous_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = ActiveSupport::Logger.new("/dev/null")
pid = fork { SolidQueue::Supervisor.start }
sleep 1
ensure
ActiveRecord::Base.logger = previous_logger
terminate_process(pid) if pid && process_exists?(pid)
end
end