Spring3.0 + Quartz 1.8.4 구성
타이머를 통해 스케줄링해야 하는 간단한 클래스 코드는 다음과 같습니다.
package com.simonsw.quartz;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Simon Lv
* @since Nov 11, 2013
*/
public class SpringQtz {
private Logger logger = LoggerFactory.getLogger(getClass());
private static int counter = 0;
protected void execute() {
long ms = System.currentTimeMillis();
logger.info("\t\t" + new Date(ms));
logger.info("(" + counter++ + ")");
}
}
구체적인 Quartz 설정 xml 파일을 만듭니다. 파일 이름은spring-quartz입니다.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- MethodInvokingJobDetailFactoryBean, Job , targetMethod -->
<bean id="springQtzJob" class="com.simonsw.quartz.SpringQtz" />
<!-- bean bean -->
<bean id="simonQtzJobMethod"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="springQtzJob" />
<!-- -->
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" />
</bean>
<!-- ======================== ======================== -->
<bean id="simonCronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="simonQtzJobMethod"></property>
<property name="cronExpression" value="0/5 * * * * ?"></property>
<property name="startDelay" value="5000"></property>
</bean>
<!-- ======================== ======================== -->
<bean id="SpringJobSchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simonCronTriggerBean" />
</list>
</property>
</bean>
</beans>
마지막으로, 이 xml 파일을 웹에 두어야 합니다.xml 중입니다.
마지막으로 Tomcat과 같은 웹 컨테이너를 시작하면 다음과 같은 로그 인쇄 정보를 볼 수 있습니다.
13:57:50.016 [SpringJobSchedulerFactoryBean_Worker-1] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:57:50 CST 2013
13:57:50.016 [SpringJobSchedulerFactoryBean_Worker-1] INFO com.simonsw.quartz.SpringQtz - (0)
13:57:55.001 [SpringJobSchedulerFactoryBean_Worker-2] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:57:55 CST 2013
13:57:55.001 [SpringJobSchedulerFactoryBean_Worker-2] INFO com.simonsw.quartz.SpringQtz - (1)
13:58:00.001 [SpringJobSchedulerFactoryBean_Worker-3] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:00 CST 2013
13:58:00.001 [SpringJobSchedulerFactoryBean_Worker-3] INFO com.simonsw.quartz.SpringQtz - (2)
13:58:05.002 [SpringJobSchedulerFactoryBean_Worker-4] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:05 CST 2013
13:58:05.002 [SpringJobSchedulerFactoryBean_Worker-4] INFO com.simonsw.quartz.SpringQtz - (3)
13:58:10.001 [SpringJobSchedulerFactoryBean_Worker-5] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:10 CST 2013
13:58:10.002 [SpringJobSchedulerFactoryBean_Worker-5] INFO com.simonsw.quartz.SpringQtz - (4)
13:58:15.001 [SpringJobSchedulerFactoryBean_Worker-6] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:15 CST 2013
13:58:15.001 [SpringJobSchedulerFactoryBean_Worker-6] INFO com.simonsw.quartz.SpringQtz - (5)
13:58:20.001 [SpringJobSchedulerFactoryBean_Worker-7] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:20 CST 2013
13:58:20.001 [SpringJobSchedulerFactoryBean_Worker-7] INFO com.simonsw.quartz.SpringQtz - (6)
13:58:25.001 [SpringJobSchedulerFactoryBean_Worker-8] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:25 CST 2013
13:58:25.001 [SpringJobSchedulerFactoryBean_Worker-8] INFO com.simonsw.quartz.SpringQtz - (7)
13:58:30.001 [SpringJobSchedulerFactoryBean_Worker-9] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:30 CST 2013
13:58:30.002 [SpringJobSchedulerFactoryBean_Worker-9] INFO com.simonsw.quartz.SpringQtz - (8)
13:58:35.001 [SpringJobSchedulerFactoryBean_Worker-10] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:35 CST 2013
13:58:35.001 [SpringJobSchedulerFactoryBean_Worker-10] INFO com.simonsw.quartz.SpringQtz - (9)
13:58:40.001 [SpringJobSchedulerFactoryBean_Worker-1] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:40 CST 2013
13:58:40.001 [SpringJobSchedulerFactoryBean_Worker-1] INFO com.simonsw.quartz.SpringQtz - (10)
13:58:45.002 [SpringJobSchedulerFactoryBean_Worker-2] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:45 CST 2013
13:58:45.002 [SpringJobSchedulerFactoryBean_Worker-2] INFO com.simonsw.quartz.SpringQtz - (11)
13:58:50.002 [SpringJobSchedulerFactoryBean_Worker-3] INFO com.simonsw.quartz.SpringQtz - Mon Nov 11 13:58:50 CST 2013
13:58:50.002 [SpringJobSchedulerFactoryBean_Worker-3] INFO com.simonsw.quartz.SpringQtz - (12)
구체적으로 내 소스 코드를 보려면 GitHub에서 소스 코드를 다운로드하십시오.
https://github.com/simon5408/DummyProj
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.