2011-02-13 15 views
5

मुझे एक आवश्यकता है जहां मुझे, समय के कुछ अंतराल पर एन कार्यों को निष्पादित करने की आवश्यकता है। मेरे पास एक डेटाबेस है जिसमें कार्य निष्पादित करने के लिए आवश्यक मान होंगे - जावा और मेरे पास एक विंडोज प्लेटफ़ॉर्म पर अपाचे वेबसर्वर कॉन्फ़िगर किया गया है।रन कार्य जावा, अपाचे

क्या कोई मुझे इस कार्य को पूरा करने में मार्गदर्शन कर सकता है।

उत्तर

4

आप इस डालने के लिए Quartz api का उपयोग कर सकते हैं।

क्वार्ट्ज एपीआई का उपयोग करने में आसान है और शेड्यूलिंग की शुरुआत करता है।

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

यहां नमूने tutorial बताते हैं कि कैसे सरल सर्वलेट

web.xml

<web-app> 
<display-name>timer</display-name> 

    <servlet> 
    <servlet-name>InitializeServlet</servlet-name> 
    <servlet-class>com.cron.InitializeServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

</web-app> 

InitializeServlet.java

package com.cron; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 

public class InitializeServlet extends HttpServlet { 

public void init() throws ServletException { 

    try { 
     System.out.println("Initializing NewsLetter PlugIn"); 

     CronScheluder objPlugin = new CronScheluder(); 

    } 
    catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

    } 

} 

CronSchelude साथ यह

क्वार्ट्ज उपयोग करने के लिए है r.java

package com.cron; 

import org.quartz.CronTrigger; 
import org.quartz.JobDetail; 
import org.quartz.Scheduler; 
import org.quartz.SchedulerFactory; 
import org.quartz.impl.StdSchedulerFactory; 

public class CronScheluder { 

    public CronScheluder() throws Exception { 

     SchedulerFactory sf = new StdSchedulerFactory(); 

     Scheduler sche = sf.getScheduler(); 

     sche.start(); 

     JobDetail jDetail = new JobDetail("Newsletter", "NJob", MyJob.class); 

     //"0 0 12 * * ?" Fire at 12pm (noon) every day 
     //"0/2 * * * * ?" Fire at every 2 seconds every day 

CronTrigger crTrigger = new CronTrigger("cronTrigger", "NJob", "0/2 * * * * ?"); 

     sche.scheduleJob(jDetail, crTrigger); 
    } 
} 

MyJob.java

package com.cron; 

import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 

public class MyJob implements Job { 

    public void execute(JobExecutionContext context) 
    throws JobExecutionException { 

     System.out.println("Cron executing "); 

    } 
} 
2

आप के माध्यम से यह कर सकते हैं या तो:

  • एक linux क्रॉन जॉब जो wget या के माध्यम से अपने ऐप्लिकेशन के किसी खास यूआरएल का अनुरोध किया जाएगा कर्ल
  • क्वार्ट्ज,
शेड्यूल करने के लिए जावा लाइब्रेरी क्वार्ट्ज

भी, अपाचे को आपकी आवश्यकता के साथ कोई संबंध नहीं लग रहा है।

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

  • कोई संबंधित समस्या नहीं^_^