-
Using the Quartz Scheduler언어 및 프레임워크/Java 2013. 3. 8. 14:55728x90
참고 http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/scheduling.html
Task
: 업무처리를 위한 단위
Job에서 사용하게 되는 Bean.
MethodInvokingJobDetailFactoryBean 클래스를 이용하여 invoke 시킬 수 있음.
Job
: QuartzJobBean 클래스를 상속 받음.
protected void executeInternal(JobExecutionContext context) 함수를 Override해서 필요한 로직 처리
예)
<bean name="printJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.tistory.codesnippet.schedule.quartz.PrintJob" />
<property name="jobDataAsMap">
<map>
<entry key="printTask" value-ref="printTask" />
</map>
</property>
</bean>
혹은<bean id="printJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="printTask" />
<property name="targetMethod" value="execute" />
</bean>
Trigger
: SimpleTriggerBean과 CronTriggerBean가 있음
실행시킬 Job 참조필요.
SimpleTriggerBean은 반복주기, 시작 딜레이 시간을 지정할 수 있음
CronTriggerBean은 cron 문법을 지원함.
예)
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="printJob" />
<property name="repeatInterval" value="5000" />
<property name="startDelay" value="1000" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="printJob" />
<property name="cronExpression" value="0/5 * * * * ?" />
</bean>
Scheduler
: Trigger를 작동시키는 역활을 함.
Job을 지정해 줄 수 있음.
<bean name="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--
<property name="jobDetails">
<list>
<ref bean="printJob" />
</list>
</property>
-->
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
<!-- <ref bean="cronTrigger" /> -->
</list>
</property>
</bean>728x90'언어 및 프레임워크 > Java' 카테고리의 다른 글
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! (1) 2013.03.12 Using the Timer Scheduler (0) 2013.03.08 Java Architecture for XML Binding (JAXB)를 이용한 Marshal, Unmarshal (0) 2013.02.06 Commons IO의 파일 및 디렉터로 변경에 대한 모니터링 기능 사용 (0) 2013.02.01 JGropus의 사용자 프로토콜(헤더) 정의 하는 방법 (0) 2013.02.01