Commit 2e216dd4 authored by Dylan Griffith's avatar Dylan Griffith

Do not count rails sql cache as queries in query limiting

parent 11bf575f
...@@ -3,9 +3,11 @@ module Gitlab ...@@ -3,9 +3,11 @@ module Gitlab
class ActiveSupportSubscriber < ActiveSupport::Subscriber class ActiveSupportSubscriber < ActiveSupport::Subscriber
attach_to :active_record attach_to :active_record
def sql(*) def sql(event)
unless event.payload[:name] == 'CACHE'
Transaction.current&.increment Transaction.current&.increment
end end
end end
end end
end
end end
require 'spec_helper' require 'spec_helper'
describe Gitlab::QueryLimiting::ActiveSupportSubscriber do describe Gitlab::QueryLimiting::ActiveSupportSubscriber do
describe '#sql' do let(:transaction) { instance_double(Gitlab::QueryLimiting::Transaction, increment: true) }
it 'increments the number of executed SQL queries' do
transaction = double(:transaction)
before do
allow(Gitlab::QueryLimiting::Transaction) allow(Gitlab::QueryLimiting::Transaction)
.to receive(:current) .to receive(:current)
.and_return(transaction) .and_return(transaction)
end
describe '#sql' do
it 'increments the number of executed SQL queries' do
User.count
expect(transaction) expect(transaction)
.to receive(:increment) .to have_received(:increment)
.at_least(:once) .once
end
context 'when the query is actually a rails cache hit' do
it 'does not increment the number of executed SQL queries' do
ActiveRecord::Base.connection.cache do
User.count
User.count User.count
end end
expect(transaction)
.to have_received(:increment)
.once
end
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment