質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1639閲覧

Rails viewの変更の反映をサーバを再起動させずに行う

lyzmfeqpxs54

総合スコア237

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/04/03 05:32

いつもお世話になっております。

現在Railsでwebページを作成し運用を行っています。
Railsサーバーは下記コマンドで立ち上げている状況です。
$ sudo ~/.rbenv/shims/bundle exec ~/.rbenv/shims/rails s -d -b 0.0.0.0 -e production -p 80

そこで質問なのですが、viewの一部を変更したため、更新を反映させたいのですがその場合Railsサーバを再起動しない方法はあるのでしょうか。いままでは一度タスクをキルし再度上記コマンドで立ち上げていましたが、viewの更新程度に毎回再起動をかけるのもどうかと思っておりました。

prductionで運用している状況での更新などいついては探してもあまり見つからずこちらに質問させていただきました。
ご教示いただけますと幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

再起動したくない理由はなにでしょうか?

production で稼働させている状態では、キャッシュされているので、ファイルだけを入れ替えても再起動しないとキャッシュが残ったままになり変更が反映されないと思います。

unicorn や puma の場合は、graceful restart (hot restart) 機能があるので、再起動してもあまり問題にはならないと思うのですが...

投稿2019/04/03 06:27

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lyzmfeqpxs54

2019/04/03 06:42

ご回答ありがとうございます。 基本的に特定の人のみが見れるサイトなのですが、メンテナンスの期間を設けておらず、アクセスの少ない時間をみて下記手順で再起動していました(下記手順ですとkillしている間にアクセスがあった場合にエラーが出てしまうので・・・)。 $ ps -ef | grep puma $ sudo kill プロセスの番号 $ sudo ~/.rbenv/shims/bundle exec ~/.rbenv/shims/rails s -d -b 0.0.0.0 -e production -p 80 タスクをkillせずに再起動できるということでしょうか。 不勉強で申し訳ございません。ご教示いただけますと幸いです。
CHERRY

2019/04/03 07:11 編集

再起動中のリクエストの問題ですか。 puma ということなので...  ドキュメント https://github.com/puma/puma/blob/master/docs/restart.md#normal-vs-hot-vs-phased-restart ( ちょっと古い版の日本語訳 : https://gist.github.com/rmanzoku/3af0f633dcda33948ae9a57040536e0f ) に > A hot restart means that no requests will be lost while deploying your new code, since the server socket is kept open between restarts. > When you run pumactl phased-restart, Puma kills workers one-by-one, meaning that at least another worker is still available to serve requests, which lead to zero hanging requests (yay!). とあるとおり、限りなく停止させないようにして、再起動する方法が用意されています。 --- 設定ファイル config/puma.rb を正しく設定しておく必要がありますが、 再起動( hot restart ) bundle exec pumactl restart 段階的な再起動 bundle exec pumactl phased-restart というコマンドがあります。 設定ファイルの場所を指定する場合は、 ` -F config/puma.rb ` のように F オプションで指定します。
lyzmfeqpxs54

2019/04/03 07:28

ご回答ありがとうございます。hot restartというものを初めて知りました…。勉強不足でお恥ずかしい限りです。ご教示いただい記事と合わせて勉強し、こちらの方法で再起動を行ってみたいと思います。 また何かあった際にご教示いただけますと幸いです。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問