Java Spring의 Quartz 스케줄러 상세 정보 및 인스턴스

1. Quartz의 특징
* 작업 클래스의 상속 방식에 따라 다음과 같은 두 가지가 있습니다.
1. 작업류 계승 org.springframework.scheduling.quartz.Quartz JobBean 클래스의 방식
2. 작업 클래스는 org를 계승하지 않습니다.springframework.scheduling.quartz.Quartz JobBean 클래스의 방식
주: 개인은 두 번째를 비교적 숭배한다. 왜냐하면 이런 방식의 작업 종류는 여전히 POJO이기 때문이다.
* 작업 스케줄링의 트리거 타이밍에 따라 다음과 같은 두 가지가 있습니다.
1. 지정된 시간마다 한 번씩 터치하며, 대응하는 스케줄러는 org이다.springframework.scheduling.quartz.SimpleTriggerBean
2. 지정된 시간이 되면 한 번 터치하고 대응하는 스케줄러는 org이다.springframework.scheduling.quartz.CronTriggerBean
주: 이 두 가지 촉발 방식은 모두 두 가지 작업 계승 방식과 서로 조합하여 사용할 수 있다.
스프링에서 Quartz에 대한 사용법을 간단히 보여 드리겠습니다.
2. 작업류 계승 org.springframework.scheduling.quartz.QuartzJobBean 클래스, 지정된 시간마다 터치
1. 작업 클래스 작성

package bean.jobDetailBean; 
 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 
import org.springframework.scheduling.quartz.QuartzJobBean; 
 
public class Job1 extends QuartzJobBean { 
 
private int timeout; 
private static int i = 0; 
 
// , timeout  
public void setTimeout(int timeout) { 
 this.timeout = timeout; 
} 
 
/** 
*   
*/ 
@Override 
protected void executeInternal(JobExecutionContext context) 
throws JobExecutionException { 
 
 System.out.println(" QuartzJobBean - " + ++i + " ..."); 
 } 
} 
2. 작업 클래스 구성

<!--  QuartzJobBean  --> 
<bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean"> 
<property name="jobClass" value="bean.jobDetailBean.Job1" /> 
<property name="jobDataAsMap"> 
<map> 
<entry key="timeout" value="0" /> 
</map> 
</property> 
</bean> 
3. 작업 스케줄링의 트리거 방식 설정

<!--  QuartzJobBean  --> 
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
<property name="jobDetail" ref="job1" /> 
 
<!-- 
"cronExpression"  
 
      
  0-59 , - * / 
  0-59 , - * / 
  0-23 , - * / 
  1-31 , - * ? / L W C 
  1-12   JAN-DEC , - * / 
  1-7   SUN-SAT , - * ? / L C # 
 ( )  , 1970-2099 , - * / 
 
-   
*   
?   
--> 
 
<!--  0,10,20,30,40,50  --> 
<property name="cronExpression" value="0,10,20,30,40,50 * * * * ?" /> 
</bean> 
4. 스케줄링 공장 배치

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers"> 
<list> 
<ref bean="cronTrigger" /> 
</list> 
</property> 
</bean> 
5. 스케줄링 오픈

package test; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class ScheduleTest { 
 
public static void main(String[] args){ 
<span style="white-space:pre"> </span>BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); 
 } 
} 
3. 작업류는 org를 계승하지 않는다.springframework.scheduling.quartz.QuartzJobBean 클래스, 지정된 시간마다 터치
1. 작업 클래스 작성

package bean.jobDetailBean; 
 
public class Job2 { 
 
private static int i = 0; 
 
public void doJob2() { 
 System.out.println(" QuartzJobBean - " + ++i + " ..."); 
 } 
} 
2. 작업 클래스 구성

<bean id="job2" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
<property name="targetObject"> 
<bean class="bean.jobDetailBean.Job2" /> 
</property> 
<property name="targetMethod" value="doJob2" /> 
<property name="concurrent" value="false" /><!--   --> 
</bean> 
3. 작업 스케줄링의 트리거 방식 설정

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 
<property name="jobDetail" ref="job2" /> 
<property name="startDelay" value="0" /><!--  , 0  --> 
<property name="repeatInterval" value="2000" /><!--  2  --> 
</bean> 
4. 스케줄링 공장 배치

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="triggers"> 
<list> 
<ref bean="simpleTrigger" /> 
</list> 
</property> 
</bean> 
5. 스케줄링 오픈

package test; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class ScheduleTest { 
 
public static void main(String[] args){ 
 
 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext*.xml"); 
 } 
} 
스프링 자체 스케줄러의 예를 간단히 설명합니다.
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기