2011-08-11 13 views
5

को समाप्त करने के बाद वर्कर गिनती अभी भी मौजूद है, मैंने सफलतापूर्वक उसकेोकू सीडर स्टैक पर रेस्क चलाया है और रेल पर इंटरफ़ेस माउंट किया है।हेरोकू देवदार स्टैक पर बचाव कार्यकर्ता

जब मैं कार्यकर्ता शुरू करता हूं, तो सब कुछ ठीक काम करता है। कार्यकर्ता नौकरी की प्रक्रिया करता है। लेकिन जब मैं कार्यकर्ता को मारता हूं, तो Resque अभी भी लगता है कि कार्यकर्ता उपलब्ध है। जब मैं एक और कार्यकर्ता शुरू करता हूं, तो ऐसा लगता है कि वहां 2 कार्यकर्ता हैं लेकिन वास्तव में केवल एक ही चल रहा है।

मैं यहां http://devcenter.heroku.com/articles/ps का फॉर्म भी देखता हूं कि एक कार्यकर्ता की हत्या करते समय उसके शिकारी सिगरेट भेजते हैं और यदि यह समाप्त नहीं होता है तो यह सिगकिल भेजता है।

यहाँ मेरी कार्यकर्ता लॉग

2011-08-11T02:32:45+00:00 heroku[worker.1]: Starting process with command `bundle exec rake resque:work QUEUE=*` 
2011-08-11T02:32:46+00:00 heroku[worker.1]: State changed from starting to up 
2011-08-11T02:33:58+00:00 heroku[worker.1]: State changed from up to stopping 
2011-08-11T02:34:00+00:00 heroku[worker.1]: Stopping process with SIGTERM 
2011-08-11T02:34:09+00:00 heroku[worker.1]: Error R12 (Exit timeout) -> Process failed to exit within 10 seconds of SIGTERM 
2011-08-11T02:34:09+00:00 heroku[worker.1]: Stopping process with SIGKILL 
2011-08-11T02:34:11+00:00 heroku[worker.1]: Process exited 

है मुझे लगता है कि मेरी प्रक्रिया को और अधिक तो 10s समाप्त करने के लिए ले जाता है। क्या इसका कोई काम नहीं है क्योंकि मैं कार्यकर्ता कार्य पर रेल पर्यावरण को लोड करता हूं?

यह मेरा रेक कार्य lib/tasks/resque.rake

require "resque/tasks" 

task "resque:setup" => :environment 

उत्तर

5

मैं सिर्फ समस्या को पता चला, इस happend जब रेक काम पर ENV गुजर रहा है। जैसे QUEUE='*' गुजरते समय।

यहाँ मुद्दा अधिक पूर्ण https://github.com/defunkt/resque/issues/319#issuecomment-1789239

है और इस मुद्दे को https://github.com/defunkt/resque/issues/368

किसी भी मेरी अस्थायी पैच पर चक्र में अब भी कर रहे हैं, कि resque केवल सभी कुए चलाते हैं।

https://github.com/yulrizka/resque

+0

तुम भी ऊपर से साफ कर सकते हैं रेडिस से कनेक्ट करके कंसोल और चल रहा है। डील ('श्रमिक') – Bob

2

ahmy,

अपने समाधान के आधार पर, मैं एक है कि resque forking शामिल नहीं करता है के साथ आया था।

मैं resque.rake में रखते:

task "resque:setup" => :environment do 
    ENV['QUEUE'] = '*' 
end 

और Profile में रखते:

worker: bundle exec rake resque:work 

और में Gemfile इस डाल:

gem 'resque', :git => 'git://github.com/defunkt/resque.git'