forked from tobi/delayed_job
-
Notifications
You must be signed in to change notification settings - Fork 954
Delayed Job tasks for Capistrano 3
Will McFarland edited this page Jan 30, 2014
·
18 revisions
Capistrano 3 has a different DSL for tasks. You won't be able to incorporate DJ tasks via require 'delayed/recipes'
in your deploy.rb
anymore, so don't try to adding it to your new Capfile
.
Instead, for a Rails project, save the following in lib/capistrano/tasks
as delayed_job.cap
.
namespace :delayed_job do
def args
fetch(:delayed_job_args, "")
end
def delayed_job_roles
fetch(:delayed_job_server_role, :app)
end
desc 'Stop the delayed_job process'
task :stop do
on roles(delayed_job_roles) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :'script/delayed_job', :stop
end
end
end
end
desc 'Start the delayed_job process'
task :start do
on roles(delayed_job_roles) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :'script/delayed_job', args, :start
end
end
end
end
desc 'Restart the delayed_job process'
task :restart do
on roles(delayed_job_roles) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :'script/delayed_job', args, :restart
end
end
end
end
end
Rails 4: replace script/delayed_job with bin/delayed_job
You can still use these configuration options if you wish in your deploy.rb:
set :delayed_job_server_role, :worker
set :delayed_job_args, "-n 2"