2012-11-20 9 views
7

मेरे पास 2 अलग-अलग नौकरियां हैं (वास्तव में अधिक लेकिन सादगी के लिए 2 मान लीजिए)। प्रत्येक काम अन्य नौकरी के साथ समानांतर में चला सकते हैं, लेकिन एक ही काम के प्रत्येक उदाहरण के क्रमिक रूप से (अन्यथा उदाहरणों eachother के संसाधनों cannibalize होगा) चलाने की जानी चाहिए।स्प्रिंग बैच: विभिन्न नौकरियों के लिए अलग-अलग नौकरी लॉन्चर

मूल रूप से मैं इन नौकरियों में से प्रत्येक चाहते हैं कि उसे नौकरी उदाहरणों में से खुद कतार है है। मैंने सोचा कि मैं इसे दो अलग-अलग धागे पूल किए गए नौकरी लांचर (प्रत्येक 1 थ्रेड के साथ) और प्रत्येक नौकरी के साथ नौकरी लॉन्चर को जोड़कर कर सकता हूं।

वहाँ यह है कि जब वसंत बैच व्यवस्थापक वेब UI से नौकरियों की शुरूआत मानी जाएंगी करने के लिए एक तरीका है?

उत्तर

2

एक विशिष्ट नौकरी के लिए एक विशिष्ट नौकरी लॉन्चर निर्दिष्ट करने का एक तरीका है, लेकिन मुझे ऐसा करने का एकमात्र तरीका जॉबस्टेप के उपयोग के माध्यम से है।

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

<bean id="specificJobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher"> 
    <property name="jobRepository" ref="jobRepository"/> 
    <property name="taskExecutor"> 
     <task:executor id="singleThreadPoolExecutor" pool-size="1"/> 
    </property> 
</bean> 

<job id="queueSpecificJob"> 
    <step id="specificJobStep"> 
     <job ref="specificJob" job-launcher="specificJobLauncher" job-parameters-extractor="parametersExtractor" /> 
    </step> 
</job> 
0

कर सकते हैं एक खोल स्क्रिप्ट का उपयोग करके आप विभिन्न नौकरियों समानांतर लांच।

प्रत्येक कमांड लाइन के अंत करने के लिए एक '&' जोड़ें। खोल उन्हें अपने स्वयं के निष्पादन के साथ समानांतर में निष्पादित करेगा।

+1

मुझे नहीं लगता कि शेल स्क्रिप्ट वसंत बैच –

+0

शैल स्क्रिप्ट के साथ कोई लेना देना है, तो बस समानांतर नौकरियों के रूप में वसंत बैच नौकरियों लागू करने के लिए है। – Sajith

+0

यह नौकरियों को कतारबद्ध करने के सवाल को संबोधित नहीं करता है। मैं विशेष रूप से समान नौकरी के नौकरी के उदाहरणों को समानांतर में चलाने के लिए नहीं चाहता हूं, मैं चाहता हूं कि वे अनुक्रमिक रूप से चलें। – ahbutfore

1

@ ahbutfore

नौकरियां कैसे ट्रिगर की जाती हैं? क्या आप किसी भी मौके से क्वार्ट्ज ट्रिगर का उपयोग करते हैं? यदि हां, तो आपकी सभी नौकरियों में org.quartz.StatefulJob इंटरफ़ेस को कार्यान्वित/विस्तारित करना आपके लिए काम करेगा?

स्प्रिंग देखें सेम यहाँ विन्यास: https://github.com/regunathb/Trooper/blob/master/examples/example-batch/src/main/resources/external/shellTaskletsJob/spring-batch-config.xml। Org.trpr.platform.batch.impl.spring.job.BatchJob

एक उपयुक्त "नेता चुनाव" कार्यान्वयन का उपयोग करके आप अधिक जटिल क्रमिकरण (स्प्रिंग बैच नोड्स सहित) कर सकते हैं। मैंने अपनी परियोजना में नेटफ्लिक्स क्यूरेटर (एक अपाचे जुकीपर रेसिपी) का उपयोग किया है। यहां कुछ पॉइंटर्स: https://github.com/regunathb/Trooper/wiki/Useful-Batch-Libraries

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

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