2011-02-13 3 views
5

나는 일정한 간격으로 n 개의 작업을 실행해야하는 요구 사항이 있습니다. 내가 작업을 실행하는 데 필요한 값을 포함하는 데이터베이스가 - 자바 및 Windows 플랫폼에 구성된 아파치 웹 서버가 있습니다.예정된 시간에 작업을 실행합니다. java, apache

누군가이 작업을 수행하는 데 나를 안내 할 수 있습니까?

답변

4

이 용도로 Quartz api을 사용할 수 있습니다.

Quartz는 사용하기 쉽고 일정을 초기화하는 API입니다.

밀리 초 및 반복 작업으로 간단한 트리거를 사용하고 반복 간격을 설정할 수 있습니다. Advance Trigger CronTrigger는 똑같은 unix cron을 사용합니다. CronTrigger에서 우리는 하루를 정의하고 정의 할 수 있습니다. 수요일, 금요일, 매주, 매월 및 매년. 여기

는 간단한 서블릿

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와 그것을

석영을 사용하는 방법을 설명하는 샘플 tutorial입니다 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); 
    } 
} 

당신은을 통해이 작업을 수행 할 수 있습니다

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

MyJob.java : wget을 또는 통해 응용 프로그램의 특정 URL을 요청합니다

  • 리눅스 cron 작업 컬
  • 스케쥴링 용 자바 라이브러리 인 Quartz

또한 apache는 요구 사항과 관련이없는 것 같습니다.

관련 문제