현재 널리 사용되는 Spring 타이머 구성에는 Java의 Timer 클래스와 OpenSymphony의 Quartz라는 두 가지가 있습니다.
1. Java 타이머 타이밍
먼저 java.util.TimerTask 클래스를 상속하여 Spring에 정의된
import java.util.TimerTask; public class EmailReportTask extends TimerTask{ @Override public void run() { ... } }
실행 메소드를 구현합니다. 🎜>
...Spring 타이머 구성<bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask" ref="reportTimerTask" /> <property name="period"> <value>86400000value> property> bean>
<bean class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list><ref bean="scheduleReportTask"/>list> property> bean>
<bean id="scheduleReportTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="timerTask" ref="reportTimerTask" /> <property name="period"> <value>86400000value> property> <property name="delay"> <value>3600000value> property> bean>
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; public class EmailReportJob extends QuartzJobBean{ protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { ... } }
<bean id="reportJob" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass"> <value>EmailReportJobvalue> property> <property name="jobDataAsMap"> <map> <entry key="courseService"> <ref bean="courseService"/> entry> map> property> bean>
<bean id="simpleReportTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="reprotJob" /> <property name="startDelay"> <value>360000value> property> <property name="repeatInterval"> <value>86400000value> property> bean>
cronExpression 속성은 언제를 알려줍니다. 발사하다. 가장 신비한 것은 cron 표현입니다.
<bean id="cronReportTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="reprotJob" /> <property name="cronExpression"> <value>0 0 6 * * ?value> property> bean>
각 요소는 값(예: 6), 간격(9-12) 및 목록(9, 11, 13) 또는 와일드카드 문자(*). 두 요소 4와 6은 상호 배타적이므로 설정하지 않으려는 필드를 나타내려면 물음표(?)를 설정해야 하며, 값 조합이 반복 횟수(10/6은 반복을 의미함)를 나타내는 경우 "/"를 설정해야 합니다. 10초마다 6개 2등급).
타이머 시작
triggers 속성은 일련의 트리거를 허용합니다.
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list><ref bean="cronReportTrigger"/>list> property> bean>