Java Spring의 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");
}
}
스프링 자체 스케줄러의 예를 간단히 설명합니다.읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.