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