Restart the application on every reboot

This way we don't have to start it manually every time the server is
restarted.

Note if we start the application with `bin/rails s start -e production`,
as we'd probably want to do so this task doesn't depend on the server we
use, the application will crash when we restart it because it will be
restarted in the development environment. Maybe this issue will be fixed
in future versions of Rails and/or Puma.

Also note we're passing `2` workers to delayed job, and this number must
be the same number we use for the `delayed_job_workers` variable in
capistrano. I haven't found a way to share this variable between
whenever and capistrano.
This commit is contained in:
Javi Martín
2019-11-16 20:05:39 +01:00
parent 1ff20921d3
commit b0f9287000

View File

@@ -39,3 +39,9 @@ end
every 1.day, at: "3:00 am", roles: [:cron] do
rake "votes:reset_hot_score"
end
every :reboot do
command "cd #{@path} && bundle exec puma -C config/puma/#{@environment}.rb"
# Number of workers must be kept in sync with capistrano's delayed_job_workers
command "cd #{@path} && RAILS_ENV=#{@environment} bin/delayed_job -n 2 restart"
end