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.
This commit is contained in:
David Taylor 2021-04-30 11:50:06 +01:00 committed by GitHub
parent cac7725e28
commit 0188d53f3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 0 deletions

View File

@ -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