Spec-Zone.ru › Ruby on Rails 8.1

класс ActiveRecord::ExplainRegistry::Subscriber

Родительский класс:
Object

Константы

EXPLAINED_SQLS
IGNORED_PAYLOADS

Для запросов SCHEMA нельзя выполнить EXPLAIN; кроме того, мы не хотим запускать EXPLAIN для собственных EXPLAIN, какими бы восхитительно цикличными они ни были.

С другой стороны, мы хотим отслеживать производительность реальных запросов к базе данных, а не производительность доступа к кэшу запросов.

MUTEX

Открытые методы класса

ensure_subscribed () Показать исходный код
# File activerecord/lib/active_record/explain_registry.rb, line 16
def ensure_subscribed
  return if @subscribed
  MUTEX.synchronize do
    return if @subscribed

    ActiveSupport::Notifications.subscribe("sql.active_record", new)
    @subscribed = true
  end
end

Открытые методы экземпляра

finish (name, id, payload) Показать исходный код
# File activerecord/lib/active_record/explain_registry.rb, line 31
def finish(name, id, payload)
  if ExplainRegistry.collect? && !ignore_payload?(payload)
    ExplainRegistry.queries << payload.values_at(:sql, :binds)
  end
end
ignore_payload? (payload) Показать исходный код
# File activerecord/lib/active_record/explain_registry.rb, line 48
def ignore_payload?(payload)
  payload[:exception] ||
    payload[:cached] ||
    IGNORED_PAYLOADS.include?(payload[:name]) ||
    !payload[:sql].match?(EXPLAINED_SQLS)
end
silenced? (_name) Показать исходный код
# File activerecord/lib/active_record/explain_registry.rb, line 37
def silenced?(_name)
  !ExplainRegistry.collect?
end
start (name, id, payload) Показать исходный код
# File activerecord/lib/active_record/explain_registry.rb, line 27
def start(name, id, payload)
  # unused
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API