Rails: заставить логику работать в конце запроса, независимо от прерывания цепочки фильтров? - PullRequest
1 голос
/ 10 мая 2010

Существует ли надежный механизм, описанный в документации по rails, для вызова функции в конце запроса, независимо от прерывания цепочки фильтров?

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

Для контекста я пытаюсь поместить некоторую структурированную информацию профилирования / отчетности в журнал приложения в конце каждого запроса. Эта информация собирается через время существования запроса через переменные экземпляра, обернутые в специальные средства доступа контроллера, и в конце выдается в BLOB-объект JSON для использования сценарием постобработки.

Моя конечная цель - создавать отчеты о распределении логических запросов моего приложения (вещи, которые зависят от логики контроллера, а не только URI запроса и параметров), профиля производительности (время, затраченное на конкретные запросы БД или заблокированные на веб-сервисах), частоты отказов ( включая недействительные входящие запросы, которые отклоняются правилами проверки before_filter), а также множество других вещей, которые не могут быть проанализированы на основе основной информации в журналах приложения и apache.

На более высоком уровне, есть ли другой "путь рельсов", который решает цель профилирования моего приложения?

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Вам необходимо промежуточное программное обеспечение, которое может выполнять код после того, как приложение завершит запрос. Подробнее см. В руководстве: http://guides.rails.info/rails_on_rack.html

0 голосов
/ 15 июня 2013

вокруг фильтров должны решить эту проблему сегодня: http://apidock.com/rails/ActionController/Filters/ClassMethods

(действительно старая ветка - но наткнулся на это прежде, чем я нашел ответ)

...