나는 Capistrano를 사용하여 배포 한 Rails 3 앱이 있습니다. 나는 최근에 Sidekiq을 추가했다. 그것은 내 발달에 잘 작동합니다. 동일한 서버에 staging
과 preview
을 모두 호스팅하고 있으며 제대로 작동하지 않는 미리보기입니다. 미리보기에서 작업자를 트리거하면 준비로 이동하여 준비 데이터베이스에 도달합니다. 동일한 서버에 2 개의 sidekiq 프로세스를 공존시키기위한 구성이 누락 되었습니까?Rails + Sidekiq : 잘못된 환경에서 실행되는 Sidekiq
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
그것은 모순이다 :
여기 내 deploy.rb입니다. 미리보기에서 나는 작업자를 트리거하는 작업을 수행했고, 4 번 작업 준비를 완료했습니다 (로그와 콘솔에서 볼 수 있음). 그리고 예상했던 것처럼 미리 한 번 눌렀습니다.
내가 누락 된 항목이 있습니까?
LOL은 문서에서 바로 파생 된 정답을 위해 downvoted ... classic. FWIW redis는 "환경"그 자체가 다른 네임 스페이스가 없으므로 올바른 환경에 연결하고 있는지 확인하는 것이 좋습니다. – engineerDave
올바르게 작동합니다. 나는 시험했다. 이 답변에 더 많은 정보를 추가하기 위해서, Sidekiq는 RAILS_ENV envoronment 변수가 설정되어 있다면 실행될 것이며, 명령 행에서 -e [YOUR_ENV]를 사용할 것입니다. 예 : 'bundle exec sidekiq -e production' – user1735921