Как просто запустить 1 производство Resque worker из Капистрано? - PullRequest
2 голосов
/ 11 сентября 2011

У меня установлен Redis / Resque, но мне трудно запускать / перезапускать его с Capistrano при развертывании.

Мои потребности довольно просты: у меня только 1 очередь, мне нужен только 1 работник, и я не использую monit или god.

Исходя из этого сообщения в блоге , мой deploy.rb имеет следующее:

namespace :deploy do
  task :start do ; end
  task :stop do ; end
  task :restart, :roles => :app, :except => { :no_release => true } do
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
  end

  task :restart_resque do 
    pid_file = "#{shared_path}/pids/resque.pid" 
    run "test -f #{pid_file} && cd #{current_path} && kill -s QUIT `cat #{pid_file}` || rm -f #{pid_file}"
    run "cd #{current_path}; RAILS_ENV=production QUEUE='*' VERBOSE=1 nohup rake environment resque:work& > #{shared_path}/log/resque.log && echo $! > #{pid_file}"
  end

end

after 'deploy:restart', 'deploy:restart_resque'

Мой файл resque.rake (на основе Railscast) имеет:

require "resque/tasks"  

task "resque:setup" => :environment

Когда я cap deploy, кажется, что все работает, но нет рабочих, когда я смотрю на resque-web ...

1 Ответ

2 голосов
/ 11 сентября 2011

Я предлагаю вам взглянуть на этот вопрос StackOverflow и эту суть , чтобы найти несколько предложений.

...