मैं एक कैपिस्ट्रानो कार्य को दूसरे से कैसे बुला सकता हूं?मैं एक कैपिस्ट्रानो कार्य को दूसरे से कैसे बुला सकता हूं?
उदाहरण के लिए:
before :bar, :foo
मैं एक कैपिस्ट्रानो कार्य को दूसरे से कैसे बुला सकता हूं?मैं एक कैपिस्ट्रानो कार्य को दूसरे से कैसे बुला सकता हूं?
उदाहरण के लिए:
before :bar, :foo
आप नाम स्थान का उपयोग करके यह कर सकते हैं:
task :foo do
# stuff
end
task :bar do
# INVOKE :foo
end
आम तौर पर आप को परिभाषित निर्भरता करके ऐसा कर
namespace :test do
task :one do
end
task :two do
test.one
#or just directly call it:
one
end
end
बस नाम के साथ सावधान रहना आप कुछ महत्वपूर्ण फ़ंक्शन को ओवरराइट करने के लिए उपयोग नहीं करते हैं।
रिकॉर्ड के लिए: Capistrano 3 में, invoke()
का उपयोग करें, उदा।
desc "Task that does something"
task :do_something do
invoke 'namespace:task'
end
सिर्फ एक नोट: 'invoke' सीधे' task', '''',' भीतर 'या अन्य ब्लॉक के अंदर होना चाहिए। अन्यथा यह काम नहीं करेगा। –
आप किसी अन्य कार्य के ब्लॉक में किसी कार्य का पुन: उपयोग कैसे करेंगे? – kaizenCoder
@aspiringCodeArtisan, उपयोग मामलों में से एक छोटे बच्चों की एक श्रृंखला के लिए सामान्य कार्य बना रहा है। –
पर अधिक कार्य एक और नाम स्थान में रहता है, तो आप find_and_execute_task
बजाय उपयोग कर सकते हैं।
आप भी Rake::Task["namespace:task"].invoke
इस्तेमाल कर सकते हैं, इस काम करता है
तो क्यों यह काम नहीं करता है? 'कार्य: डी,: भूमिकाएं => [: ऐप] अंत ' –
तैनात करें एक साइड नोट: आपको' टेस्ट 'नामस्थान का उपयोग नहीं करना चाहिए क्योंकि यह उस नाम के साथ मौजूदा कैपिस्ट्रानो विधि को छाया करता है। आपको उठाए गए 'ArgumentError' मिलेगा। –
हाँ इसके लिए खेद है, यह केवल उदाहरण था, मैंने माना है कि आप कुछ और सार्थक नामस्थान चुनेंगे। – mpapis