2011-07-12 59 views
2

我想要bluepill來監視我的resque工人。Resque命令從終端工作,但不通過藍圖

如果我以root用戶的身份從我的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 

我試圖延長啓動延期時間如果沒有在規定的時間加載但不能發揮作用。

請任何人都可以幫忙嗎?

在此先感謝 裏克

回答

1

不適合使用捆綁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

你應該真正考慮使用resque-pool,它大大簡化了事情,並且讓你更好地控制你的隊列,如果你有很多人處理不同的任務。 – d11wtq

0

我得到這種與Capistrano的+ resque事情...

在SSH

- >須藤服務Redis的啓動,開始

通過Capistrano的 - >須藤服務Redis的開始,說命​​令工作,但沒有過程......

相關問題