Команда Resque работает из терминала, но не через bluepill - PullRequest
2 голосов
/ 13 июля 2011

Я пытаюсь заставить bluepill следить за моими работниками resque.

Если я запускаю эту команду из корня rails от имени пользователя root, она запускает resque worker ok.

cd /var/www/domain.com/current; RAILS_ENV=production QUEUE=* bundle exec rake resque:work

, нокогда я пытаюсь запустить его с помощью bluepill, он просто пытается запустить его и не выдает ошибку.

Вот мой журнал bluepill, показывающий, что он пытается ...!

W, [2011-07-12T22:58:21.640467 #19267]  WARN -- : [domain.com:resque] Executing start command: cd /var/www/domain.com/current; RAILS_ENV=production QUEUE=* bundle exec rake resque:work
I, [2011-07-12T22:58:21.754392 #19267]  INFO -- : [domain.com:resque] Going from down => starting

I, [2011-07-12T22:59:21.334300 #19267]  INFO -- : [domain.com:resque] Going from starting => down
W, [2011-07-12T22:59:22.339873 #19267]  WARN -- : [domain.com:resque] Executing start command: cd /var/www/domain.com/current; RAILS_ENV=production QUEUE=* bundle exec rake resque:work
I, [2011-07-12T22:59:22.479740 #19267]  INFO -- : [domain.com:resque] Going from down => starting

он продолжает делать это снова и снова.

вот мой процесс файла .pill

app.process("resque") do |process|
  process.start_command = "cd #{RAILS_ROOT}; RAILS_ENV=#{RAILS_ENV} QUEUE=* bundle exec rake resque:work"
  process.daemonize = true

  process.start_grace_time = 10.seconds
  process.stop_grace_time = 10.seconds
  process.restart_grace_time = 10.seconds
end

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

Может кто-нибудь помочь с этим?

заранее спасибо Рик

Ответы [ 4 ]

1 голос
/ 14 июля 2011

Не приспособлен для использования bundle exec (немного староват), но его можно легко редактировать.

Это моя производственная среда, конфигурация Bluepill AudioBox.fm, проверенная в бою, с удовольствием поделюсь.

ENVIRONMENT = 'production'
RAILS_ROOT  = ENV['RAILS_ROOT'] || "/var/www/myapp/current"

Bluepill.application("myapp", :log_file => "/var/log/bluepill.log") do |app|
  app.uid = "ubuntu"
  app.gid = "ubuntu"

  4.times do |i|
    app.process("uploaders-#{i}") do |process|
      process.working_dir = RAILS_ROOT
      process.group = "resque"
      queues = "amazon_upload"
      process.start_command = "/usr/bin/env VERBOSE=true RAILS_ENV=#{ENVIRONMENT} QUEUE=#{queues} rake resque:work --trace"
      process.stop_command = <<-EOF
      kill -QUIT {{PID}}
      sleep_count=0
      while [ -e /proc/{{PID}} ]; do
        sleep 1
        let "sleep_count+=1"
        if [ $sleep_count -eq 60 ]; then
          kill -TERM {{PID}}
        fi
        if [ $sleep_count -ge 70 ]; then
          kill -KILL {{PID}}
        fi
      done
      EOF

      process.stdout = process.stderr = "#{RAILS_ROOT}/log/resque.log"
      process.pid_file      = "#{RAILS_ROOT}/tmp/pids/resque-uploader-#{i}.pid"
      process.daemonize     = true
      process.start_grace_time = 5.seconds
      process.stop_grace_time = 75.seconds
      process.restart_grace_time = 80.seconds

      process.checks :mem_usage, :below => 350.megabytes, :every => 1.minute, :times => 3
    end
  end
end
0 голосов
/ 01 мая 2012

Я получаю такие вещи с capistrano + resque ...

в ssh -> запуск redis службы sudo, запускается

через capistrano -> запуск службы sudo redis, говориткоманда сработала, но без процесса ...

0 голосов
/ 24 февраля 2012

Вы не говорите, какую версию bluepill вы использовали, но я просто исправил ошибку, которая проявлялась именно в этом поведении. Запрос на отправку отправлен .

0 голосов
/ 21 февраля 2012

Решил ли ответ @ kain вашу проблему? У меня что-то очень похожее только что начало происходить, см. bluepill, не обнаруживающий, что процессы на самом деле успешно запущены, и поэтому создает новые

...