2012-06-10 16 views
8

मेरे पास एक आवधिक कार्य है जिसे एक मिनट में निष्पादित करने की आवश्यकता होती है (देरी_job का उपयोग करके)। मैं रेलवे को लोडिंग समाप्त होने के तुरंत बाद इसे कतार में लेना चाहता हूं, अगर ऐसा कोई कार्य सिस्टम में पहले से मौजूद नहीं है।रेल के लोड होने के बाद कोड चलाना?

पूरे रेल बूट प्रवाह के अंत में कुछ कोड चलाने के लिए मेरे लिए एक अच्छी जगह क्या है? किसी ने कॉन्फ़िगरेशन/वातावरण/विकास.आरबी (या अन्य पर्यावरण) का सुझाव दिया है, लेकिन जब मैं वहां से नौकरियों को कतारबद्ध करता हूं तो देरी_job मुझे ActiveRecord समस्याएं देते हैं।

मैंने http://guides.rubyonrails.org/initialization.html से परामर्श किया, और ऐसा लगता है कि इस तरह के कोड के लिए कोई स्पष्ट स्थान नहीं है।

क्या इस तरह के पोस्ट-परिनियोजन सेटअप शायद मेरे ऐप के कोड के लिए बाहरी रूप से किया जा सकता है, शायद रेक या किसी अन्य माध्यम से? कोई सुझाव?

धन्यवाद!

+0

क्रॉन नौकरी? (15 वर्ण) –

उत्तर

8

http://guides.rubyonrails.org/initialization.html के बारे में, क्षमा करें, हम इसे फिर से लिखने के लिए कड़ी मेहनत कर रहे हैं। आपकी समस्या के लिए, मैं आपके आवेदन में config.after_initialize के साथ प्रयास करूंगा। आरबी

def after_initialize(&block) 
    ActiveSupport.on_load(:after_initialize, :yield => true, &block) 
end 
2

आपके पास दो विकल्प वास्तव में

1) initializers निर्देशिका में इसे जोड़ने के लिए है और यह ठीक होना चाहिए।

2) application.rb के अंत में यह जोड़ने के लिए, यह कम साफ है, लेकिन यह इस बिंदु पर तैयार initializers तरह बातें करना होगा, पी इसलिए यदि 1) क्योंकि एआर समस्याओं की विफल रहता करना 2)

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