기술과 산업/언어 및 프레임워크

Using the Quartz Scheduler

B컷개발자 2013. 3. 8. 14:55
728x90

참고 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> 




codesnippet-schedule.7z



728x90