我有一个使用Capistrano部署的Rails 3应用程序。最近我添加了Sidekiq。在我的开发环境中它运行得很好。我将“staging”和“preview”两个部署在同一台服务器上,但“preview”无法正常工作。 当我在预览中触发worker时,它会转到staging并命中staging数据库。 我是否缺少配置使2个Sidekiq进程在同一台服务器上共存?
这是我的deploy.rb:
require "bundler/capistrano"
require 'sidekiq/capistrano' #<-- sidekiq
load "lib/deployer/deployer.rb"
set :application, "myapp"
set :scm, :git
set :repository, ...
set :scm_passphrase, ""
defaults
global_defaults
set :stages, ["staging", "preview"]
task :staging do
set :rails_env, "staging"
set :user, "deployer"
server "myserver.com", :app, :web, :db, :primary => true
defaults
end
task :preview do
set :rails_env, "preview"
set :user, "deployer"
server "myserver.com", :app, :web, :db, :primary => true
defaults
end
这不一致。预览时,我刚刚执行了一个触发工作进程的操作,有4次进入到了staging环境(我可以在日志和控制台中看到),而只有1次像预期的那样进入了预览环境。
我是否漏了什么?
bundle exec sidekiq -e production
。 - user1735921