Capistrano
Recipes for Delayed Job¶ ↑
This gem provides recipes for Delayed Job to setup runit and monit
Versioning¶ ↑
Use 3.x for capistrano 3
For capistrano2, see the capistrano2 branch (will not be updated)
Usage¶ ↑
Add it to your Gemfile without requiring it
gem 'capistrano-delayed_job', require: false
Now run bundle install
Add this to your Capfile:
require 'capistrano/delayed_job'
Roles:¶ ↑
capistrano-delayed_job targets :worker
roles by default.
Monit¶ ↑
cap delayed_job:monit:disable # Disable and stop monit services for Delayed Job cap delayed_job:monit:enable # Enable monit services for Delayed Job cap delayed_job:monit:monitor # Monitor Delayed Job cap delayed_job:monit:restart # Restart monit services for Delayed Job cap delayed_job:monit:setup # Setup Delayed Job monit-service cap delayed_job:monit:start # Start monit services for Delayed Job (will also tr... cap delayed_job:monit:stop # Stop monit services for Delayed Job (will also sto... cap delayed_job:monit:unmonitor # Purge Delayed Job monit configuration
Setup in your deploy file¶ ↑
You can add this to deploy.rb or env.rb in order to automatically start/stop puma using monit. It is not needed if you use runit to stop/start/restart the service.
before "monit:unmonitor", "delayed_job:monit:stop" after "monit:monitor", "delayed_job:monit:start"
Runit¶ ↑
cap delayed_job:runit:disable # Disable Delayed Job runit-service cap delayed_job:runit:enable # Enable Delayed Job runit-service cap delayed_job:runit:flush_sockets # Flush delayed_job sockets, as they can end up 'han... cap delayed_job:runit:once # Start Delayed Job runit-service only ONCE (no supe... cap delayed_job:runit:purge # Purge Delayed Job runit configuration cap delayed_job:runit:quit # Quit the Delayed Job runit-service cap delayed_job:runit:restart # Restart Delayed Job runit-service cap delayed_job:runit:setup # Setup Delayed Job runit-service cap delayed_job:runit:start # Start Delayed Job runit-service cap delayed_job:runit:stop # Stop Delayed Job runit-service
Setup in your deploy file¶ ↑
To use runit to start/stop/restart services instead of monit, use the example below.
# stop before deployment # (must be done after monit has stopped monitoring the task. If not, the service will be restarted by monit) before "monit:unmonitor", "delayed_job:runit:stop" # start before enabling monitor before "monit:monitor", "delayed_job:runit:start" # restart before enabling monitor / monitoring has been started before "monit:monitor", "delayed_job:runit:restart"
Configuration¶ ↑
See delayed_job/config.rb for default options, and ovveride any in your deploy.rb file.
Contributing¶ ↑
-
Fork the project
-
Make a feature addition or bug fix
-
Please test the feature or bug fix
-
Make a pull request
Copyright¶ ↑
© 2013 Leif Ringstad. See LICENSE for details