Отладка на рабочем сервере в направляющих

как Вы эффективно отлаживаете на живом сервере в направляющих, ли на бете/рабочем сервере?

Я пытался изменить файл непосредственно на сервере и перезапустить приложение, но изменения, кажется, не вступают в силу или занимают много времени к (кэширование?)

Я также пытался сделать "производство сценария/сервера" локально, но это очень медленно

Другая опция состоит в том, чтобы кодировать и развернуться, но это очень неэффективно.

У кого-либо есть какое-либо понимание относительно того, как они делают это эффективно?

5
задан Vadim Kotov 11 August 2017 в 09:24
поделиться

2 ответа

Я отвечу на ваш вопрос, даже если я не согласен с таким способом исправления кода сервера :)

Во-первых, вы действительно уверены, что перезапустили сервер? Вы можете проверить это, просмотрев файлы журнала.

Представление, отображаемое измененным кодом, может быть кэшировано. Кэшированные страницы находятся в папке tmp / cache . Вы можете попытаться удалить файл вручную или rake tmp: cache: clear , и все они будут удалены. В любом случае, вы можете точно увидеть, что происходит, следя за своим файлом log / production.log (он скажет вам что-то вроде «рендеринг кешируется ...»).

Еще один момент: некоторые данные также хранятся в сеансе. Вы также можете попытаться удалить свой сеанс (или удалить все сеансы; например, если вы сохраняете свои сеансы в БД, вы можете запустить rake db: sessions: clear )

7
ответ дан 14 December 2019 в 01:03
поделиться

Чтобы запустить локальный сервер в режиме производства, попробуйте:

RAILS_ENV=production script/server

или

script/server --environment=production

Проблема в том, что если вы не используете сервер webrick/mongrel в реальном производстве, это не будет точно дублировать вашу реальную производственную конфигурацию (предположительно использующую Apache или Passenger?). Также могут быть тонкие различия в окружении, которые могут быть причиной ваших проблем.

Как вы перезапускаете производственную среду, когда что-то там меняете? Это зависит от способа развертывания, и это может быть как просто бросить файл restart.txt в /tmp вашего приложения, так и сложно (не совсем) перезапустить Apache или процессы Mongrel, обслуживающие ваше приложение. Кажется странным, что ваши изменения долго не появляются, когда вы это делаете.

Когда проблема возникает в производственном режиме, я просто проверяю production.log, который обычно указывает мне направление исправления. Я реализую его в разработке, а затем перераспределяю. Обычно это помогает решить проблему. При использовании Capistrano требуется всего 3 команды (commit, push и deploy), если только ваша установка не намного сложнее моей.

2
ответ дан 14 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: