我的网站已与Capistrano一起部署。部署完成后,如何才能使delay_job和elasticsearch重新启动?
答案 0 :(得分:-1)
您需要在delayed_job.rake
中创建lib/capistrano/tasks
# delayed_job.rake
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 :bundle, :exec, :'bin/delayed_job -n 1', :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 :bundle, :exec, :'bin/delayed_job -n 1', 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 :bundle, :exec, :'bin/delayed_job -n 1', args, :restart
end
end
end
end
end
并在您的config / deploy.rb文件中添加以下几行
after :publishing, :restart
task :restart do
invoke 'delayed_job:restart'
end