ruby-on-rails - Capistrano Rails 部署后重启服务
问题描述
我的网站正在使用 Capistrano 进行部署。部署完成后如何让delayed_job和elasticsearch重新启动?
解决方案
你需要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
推荐阅读
- angular - Angular Routing:将动态 url 数据传递给组件
- cassandra-3.0 - 是否有可能找出一个表在 Cassandra 中有多少个分区(元数据)
- python - 电报机器人回答常见问题
- excel - 如何对当前季节进行排序
- ionic3 - 如何在离子视图中显示照片库?
- docker - 在 Dockerfile 的 CMD 中使用 ENV var
- python - 递归查找所有带有扩展名的文件
- r - 使用 DT 时更改行颜色
- uwp - 如果 AcceptsReturn 对于其样式内的文本框为 True,则 AutoSuggestBox 的行为会有所不同
- sql - 带有where和offset fetch子句的简单选择在oracle中不起作用