2012-08-28 13 views
5

का उपयोग करके डायनामिक जॉब शेड्यूलिंग मैंने एक वेब क्रॉलर विकसित किया है जो प्रारंभ पैरामीटर के साथ बीज पैरामीटर के रूप में क्रॉल करता है। मैं उपयोगकर्ताओं को यदि संभव हो तो नौकरी के मामले में इस कार्य को शेड्यूल करने की अनुमति देना चाहता हूं।स्प्रिंग 3

वर्तमान में मैं Spring 3.1.2 और Hibernate का उपयोग कर रहा हूं। मुझे उपयोगकर्ताओं को एक फ्रंट एंड देने की ज़रूरत है जो क्रोनजोब पैरामीटर प्राप्त करता है और उस पर आधारित मैं क्रॉलर को चलाने के लिए चाहता हूं। क्या वसंत का उपयोग करके इसे करना संभव है।

मैंने Quartz के बारे में कुछ पढ़ा है लेकिन एसओ या अन्य वेबसाइटों पर लेख बिल्कुल स्पष्ट नहीं हैं या वसंत में शेड्यूलर को कार्यान्वित करने के तरीके को पूरी तरह से समझने के लिए वे पूर्ण नहीं हैं।

मैं आधारभूत बातें जानता वहाँ

  • उत्प्रेरक
  • नौकरी (सेवा चलाने के लिए) यह

    1. SchedulerFacotry के तीन घटक

    मुझे आशा है कि किसी को सही दिशा में मेरा मार्गदर्शन कर सकते हैं कि।

  • उत्तर

    9

    क्वार्ट्ज शेड्यूलर केवल नौकरी के लिए सही उपकरण है। किसी कारण से लगभग सभी ट्यूटोरियल एक्सएमएल में स्टार्टअप पर नौकरियों को परिभाषित करने पर ध्यान केंद्रित करते हैं - जबकि क्वार्ट्ज रनटाइम पर (पुनः- | un-) शेड्यूलिंग नौकरियों में पूरी तरह से सक्षम है।

    आप क्वार्ट्ज शेड्यूलर शुरू करने के लिए वसंत का लाभ ले सकते हैं और फिर आप सीधे अपने कोड से बातचीत कर सकते हैं।

    JobDetail job = newJob(SimpleJob.class) 
        .withIdentity("job1", "group1") 
        .build(); 
    
    CronTrigger trigger = newTrigger() 
        .withIdentity("trigger1", "group1") 
        .withSchedule(cronSchedule("0/20 * * * * ?")) 
        .build(); 
    
    scheduler.scheduleJob(job, trigger); 
    

    यहाँ आप एक काम, ट्रिगर (किसी वैध क्रॉन अभिव्यक्ति जब इसे चलाने के लिए, उपयोगकर्ता की आपूर्ति कर सकते) (जावा कोड को चलाने के लिए का टुकड़ा) को परिभाषित करने और लपेट: यहाँ एक सरल उदाहरण from the documentation है सब इसे शेड्यूल करके। शेड्यूलर उदाहरण वसंत द्वारा इंजेक्शन दिया जा सकता है। वसंत उचित शटडाउन भी संभाल लेंगे।

    +0

    आपके उत्तर के लिए धन्यवाद। लेकिन क्या क्वार्ट्ज का उपयोग करने के बजाए बसंत द्वारा प्रदान की गई 'टाइमर फैक्ट्रीबीन' 'अनुसूचित टास्क' का उपयोग करना संभव है .. दस्तावेज़ीकरण में इस विधि के बारे में भी उल्लेख है। क्या आपने इसका पता लगाया है? –

    +1

    'newJob (...)' वास्तव में 'JobBuilder.newJob (...)' है। उपर्युक्त उदाहरण में, धारणा यह है कि स्थिर विधि 'newJob (...) 'को स्थिर रूप से आयात किया जाता है, इस प्रकार इसे अपने वर्ग के नाम से संदर्भित करने की आवश्यकता नहीं होती है। –

    +0

    वही 'TriggerBuilder.newTrigger() 'और' CronScheduleBuilder.cronSchedule (...) ' –

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