gpt4 book ai didi

ruby-on-rails - 使用 Capistrano 在生产中将 rpush 作为守护进程运行

转载 作者:行者123 更新时间:2023-12-03 15:32:13 25 4
gpt4 key购买 nike

我已经将我的 Rails 应用设置为与 rpush 一起使用。它在使用 rpush start 的本地开发中运行良好。但现在我想使用 capistrano-2.15.5 将它部署到我的 EC2 服务器。

我的 deploy.rb 的一部分:

after "deploy:stop",    "delayed_job:stop"
after "deploy:stop", "rpush:stop"

after "deploy:start", "delayed_job:start"
after "deploy:start", "rpush:start"

after "deploy:restart", "delayed_job:restart"
after "deploy:restart", "rpush:restart"

namespace :rpush do
%w[start stop restart].each do |command|
desc "#{command} rpush deamon"
task command, roles: :app, except: {no_release: true} do
run "cd #{deploy_to}/current && bundle exec rpush #{command}"
end
end
end

现在,问题

  • 它在开发环境中启动。我试图理解this告诉我如何操作的页面,但我做不到。
  • 我不知道pid 是存储在/current 目录还是/shared 目录。它应该在共享中,以便文件在部署之间持续存在

如果有人这样做过(即使是以不同的方式),请告诉我怎么做。

或者,我如何修复我的 cap 配方和 /initializers/rpush

最佳答案

对于 Capistrano 3:

after :finished, :restart_rpush do
on roles(:web) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :bundle, :exec, "rpush stop -e #{fetch(:rails_env)}"
execute :bundle, :exec, "rpush start -e #{fetch(:rails_env)}"
end
end
end
end

然后检查tmp和其他目录是否链接正确:

set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle public/uploads}

关于ruby-on-rails - 使用 Capistrano 在生产中将 rpush 作为守护进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28981254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com