一 quartz使用
quartz做为java语音库一个优秀的定时任务,既支持单机服务,又支持分布式集群服务。
本文只记录quartz的使用,后续会增加quartz执行原理
1.定义执行类
public class QuartzJobTest{
@PostConstruct
public voidinitJob() {
System.out.println("Quartz postconstruct");
}
public QuartzJobTest() {
}
public void execute() {
System.out.println("Quartz execute");
}
}
2.集成spring
<!--agent 任务类-->
<bean id="quartzJobTest"
class="com.test.QuartzJobTest">
</bean>
<!--agent任务描述-->
<bean id="quartzJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartzJobTest"/>
<property name="targetMethod" value="execute"/>
</bean>
<!--触发器-->
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="quartzJobDetail"/>
<!--每两分钟执行一次-->
<property name="cronExpression" value="* 0/2 * * * ?"/>
</bean>
<!--总管理容器-->
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
quartzJob只会加载一次,可以从Job的PostConstruct执行结果来确认,只有一次
网友评论