lib/capistrano/tasks/delayed_job.rake in capistrano-delayed-job-1.0.1 vs lib/capistrano/tasks/delayed_job.rake in capistrano-delayed-job-1.1.0

- old
+ new

@@ -6,10 +6,11 @@ namespace :load do task :defaults do set :delayed_job_workers, 1 set :delayed_job_service, -> { "delayed_job_#{fetch(:application)}_#{fetch(:stage)}" } + set :delayed_job_monit_enabled, false set :delayed_job_server_roles, [:app] end end @@ -34,19 +35,35 @@ %w[start stop restart].each do |command| desc "#{command} delayed_job" task command do on roles fetch(:delayed_job_server_roles) do - sudo :service, "#{fetch(:delayed_job_service)} #{command}" + if fetch(:delayed_job_monit_enabled) + # monit is enabled, use it to restart the service + sudo :monit, '-g', 'delayed_job', command + else + # monit is disabled, use the standard init script + sudo :service, fetch(:delayed_job_service), command + end end end end + + namespace :monit do + task :setup do + on roles fetch(:delayed_job_server_roles) do + sudo_upload! dj_template('delayed_job.monitrc.erb'), delayed_job_monitrc_file + sudo :service, 'monit restart' + end + end + end end namespace :deploy do after :publishing, 'delayed_job:restart' end desc 'Server setup tasks' task :setup do invoke 'delayed_job:setup' + invoke 'delayed_job:monit:setup' if fetch(:delayed_job_monit_enabled) end