Files
danbooru/lib/capistrano/tasks/delayed_job.cap
2015-10-02 13:36:40 -07:00

52 lines
1.3 KiB
Plaintext

namespace :delayed_job do
desc "Start delayed_job process"
task :start do
on roles(:app) do
if test("[ -d #{current_path} ]")
within current_path do
with rails_env: fetch(:rails_env) do
hostname = capture("hostname").strip
execute :bundle, "exec", "script/delayed_job", "--queues=default,#{hostname}", "-n 2", "start"
end
end
end
end
end
desc "Stop delayed_job process"
task :stop do
on roles(:app) do
if test("[ -d #{current_path} ]")
within current_path do
with rails_env: fetch(:rails_env) do
execute :bundle, "exec", "script/delayed_job", "stop"
end
end
end
end
end
desc "Restart delayed_job process"
task :restart do
on roles(:app) do
find_and_execute_task("delayed_job:stop")
find_and_execute_task("delayed_job:start")
end
end
desc "Kill delayed_job process"
task :kill do
on roles(:app) do
procs = capture("ps -A -o pid,command").split(/\r\n|\r|\n/).grep(/delayed_job/).map(&:to_i)
if procs.any?
execute "for i in #{procs.join(' ')} ; do kill -s TERM $i ; done"
end
end
end
end
after "delayed_job:stop", "delayed_job:kill"
before "deploy:started", "delayed_job:stop"
after "deploy:published", "delayed_job:start"