Spec-Zone.ru › Ruby on Rails 7.2

класс ActionDispatch::DebugLocks

Родитель:
Объект

Action Dispatch DebugLocks

Этот промежуточный обработчик может быть использован для диагностики тупиков в механизме автоматической загрузки.

Чтобы использовать его, вставьте его в верхнюю часть стека промежуточных обработчиков, используя config/application.rb:

config.middleware.insert_before Rack::Sendfile, ActionDispatch::DebugLocks

После перезапуска приложения и повторного воспроизведения условия тупика маршрут /rails/locks отобразит сводку всех потоков, которые в настоящее время известны механизму блокировок, уровень блокировки, который они удерживают или ожидают, и их текущие трассировки стека.

В целом, тупик будет вызван конфликтом механизма блокировки с какой-либо другой внешней блокировкой или вызовом блокирующей операции ввода-вывода. Эти конфликты не могут быть автоматически идентифицированы, но должны быть видны в отображенных трассировках стека.

ПРИМЕЧАНИЕ: Формат и содержание вывода этого промежуточного обработчика предназначены для восприятия человеком и могут измениться между версиями.

Этот промежуточный обработчик раскрывает операционные детали сервера без контроля доступа. Он должен быть включён только во время использования и удалён после его завершения.

Публичные методы класса

new(app, path = "/rails/locks") Показать исходный код
# File actionpack/lib/action_dispatch/middleware/debug_locks.rb, line 30
def initialize(app, path = "/rails/locks")
  @app = app
  @path = path
end

Публичные методы экземпляра

call(env) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/debug_locks.rb, line 35
def call(env)
  req = ActionDispatch::Request.new env

  if req.get?
    path = req.path_info.chomp("/")
    if path == @path
      return render_details(req)
    end
  end

  @app.call(env)
end

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

Spec-Zone.ru

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