From 0188d53f3a57727b374f015fc5fdeb9e4ee93848 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Fri, 30 Apr 2021 11:50:06 +0100 Subject: [PATCH] DEV: Add performance warning message when running `rails s` (#12912) In Discourse, `rails s` ultimately launches the `bin/unicorn` script. However, the overhead of `rails` launching `bin/rails`, and then in turn `bin/unicorn` can be non-trivial. Therefore it is much better to run `bin/unicorn` directly. This commit prints a warning message to STDERR when `rails s` is used. Functionality is unchanged. --- bin/rails | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bin/rails b/bin/rails index cdc2c4c16b3..f95c5282d16 100755 --- a/bin/rails +++ b/bin/rails @@ -9,6 +9,18 @@ if !ENV["RAILS_ENV"] && (ARGV[0] == "s" || ARGV[0] == "server") end ENV["RAILS_LOGS_STDOUT"] ||= "1" + + STDERR.puts <<~MESSAGE + -------- + WARNING: Discourse uses `bin/unicorn` to start the web server. + For backwards compatibility, `rails s` will do this automatically. + For improved performance you should run `bin/unicorn` directly. + + Running: + UNICORN_PORT=#{ENV["UNICORN_PORT"]} RAILS_LOGS_STDOUT=#{ENV["RAILS_LOGS_STDOUT"]} bin/unicorn + -------- + MESSAGE + exec File.expand_path("unicorn", __dir__) end