Проблема с проверкой подлинности Restful
-
07-07-2019 - |
Вопрос
Я использую популярное приложение restful authentication app / учебное пособие, найденное здесь: http://railsforum.com/viewtopic.php?pid=74245#p74245
Я активно пользуюсь приложением, и все работает отлично.Единственная проблема, с которой я сталкиваюсь, заключается в том, что системе требуется от 60 секунд до нескольких минут, чтобы обработать создание нового пользователя.Это, очевидно, неприемлемо.
Когда я создаю пользователя с помощью обычного процесса регистрации, система просто сидит и обрабатывает в течение длительного времени, а затем в конечном итоге возвращает сообщение об успешной регистрации.
Я не получаю никаких ошибок или исключений.Журнал также не указывает на то, что что-то не так.Я активно пользуюсь приложением уже несколько дней, и это единственная проблема, с которой я, похоже, сталкиваюсь.
Есть какие-нибудь идеи, где мне следует искать причину этой проблемы?Все приложение перечислено по ссылке, которую я вставил в начало этого поста, поэтому я думаю, что проще взглянуть на него там, чем мне вставлять гору деталей.Я буду рад предоставить ответы на вопросы, если вам нужна дополнительная информация.
Спасибо!
Решение
Я бы использовал новорельский драгоценный камень (не волнуйтесь, использование его для среды разработки на 100% бесплатно).Установив это, вы можете зарегистрировать пользователя, а затем использовать newrelic, чтобы увидеть, сколько времени занимал каждый sql-запрос и какая часть запроса (рендеринг и т.д.) отнимает время.
Если бы мне пришлось строить смелые предположения, я бы обвинил конфигурацию почтовой программы, но это предположение наугад.newrelic должен помочь вам отследить, где происходят наибольшие потери времени - и если между элементами отчета newrelic наблюдается большой скачок во времени, это также хороший показатель того, где что-то идет не так.
Удачи.
Другие советы
Я также подозреваю, что ActionMailer, если он не может связаться с настроенным сервером, потребуется довольно много времени для тайм-аута.
Другая похожая проблема, с которой я столкнулся несколько лет назад, заключалась в том, что я использовал код, который использовал / dev / random для получения случайных данных, но виртуальная машина, на которой я работал, не имела / dev / random, но каким-то образом она в конечном итоге завершала запрос, но это занимало вечность.
Я бы также попробовал использовать Rack::Bug gem .Предоставляет вам много информации о вашем приложении, которая может помочь вам отладить процесс аутентификации.