2011-08-04 12 views
83

किसी कारण से, विलंबित :: जॉब ने कतारबद्ध करने का फैसला किया है, लेकिन मैंने इसे कई बार फिर से शुरू नहीं किया है, भले ही मैंने इसे कई बार फिर से शुरू किया है, यहां तक ​​कि इसे मार दिया है और इसे पुनरारंभ किया है। यह कोई नौकरियां नहीं चलाएगा।कंसोल में चलाने के लिए आप एक विशिष्ट देरी :: नौकरी कैसे बताते हैं?

क्या मैं, कंसोल में, एक विशिष्ट नौकरी निर्दिष्ट कर सकता हूं और इसे काम करने के लिए कह सकता हूं?

पूर्व: .. Delayed::Job.find(x).run

+0

की [मैन्युअल Delayed_job में नौकरी की फिर से कोशिश] संभव डुप्लिकेट (http://stackoverflow.com/questions/3312054/manually-retry-job-in-delayed -job) – smathy

उत्तर

117

का जवाब दे कंसोल से विशिष्ट नौकरी को चलाने के लिए कैसे:

Delayed::Job.find(x).invoke_job

लेकिन आप याद रखना चाहिए कि यह काम है कि किया गया था को नष्ट करने जैसे किसी भी अन्य बातों के नहीं चलेंगे या इतने पर। बस नौकरी/कार्य चल रहा है।

+2

सावधानीपूर्वक उत्तर के लेखक नोट को पढ़ें: _ "यह किसी अन्य चीज को नहीं चलाएगा जो काम पूरा कर रहा था" _। मैं ऐसा इसलिए कहता हूं क्योंकि मैंने इसे नहीं पढ़ा और मैं पागल हो रहा था। [@ डेविड टुइट के उत्तर] की जांच करें (http://stackoverflow.com/a/20146200/316700) – fguillen

133

तुम भी इसे इस तरह कर सकते हैं:

Delayed::Worker.new.run(Delayed::Job.last) 
+0

अच्छा! उसके लिए धन्यवाद! – Trip

+23

यह सबसे अच्छा जवाब है, यह पूरा होने के बाद नौकरी हटा देता है। धन्यवाद – m4risU

+11

विलंबित :: Worker.new.run (विलंबित :: Job.find (id)) – mrt

संबंधित मुद्दे

 संबंधित मुद्दे