Quartz有多种配置方式,我的项目使用了代码和配置文件两种方式,希望对大家有帮助
<bean id="contrastMonitorTask" class="com.ygz.monitor.task.MonitorTask"/> //配置需要执行的类
<!--用于发送待发送信息-->
<bean id="sendInfosMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="contrastMonitorTask" /> //如果代码配置到这里就可以了
<property name="targetMethod" value="contrastSendMonitor" /> // 配置文件配置需要执行的方法
<property name="concurrent" value="false" /> //多个Trigger使用同一个jobDtail 可能会产生并发现象 加入false会在前一个Trigger执行完毕后再执行下一个,相当于推迟执行,所以这里根据实际情况进行配置
</bean>
<!--定义触发器-->
<bean id="sendInfosTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="sendInfosMethod" />
<!-- 发送待发送信息定时表达式 ,每一分钟执行一次 -->
<property name="cronExpression" value="${corn.expression}" /> // properties文件写入cron表达式
</bean>
<!-- 配置调度工厂 -->
<bean id="VatSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="sendInfosTrigger" />
</list>
</property>
</bean>
</beans>
<!--用于发送待发送信息-->
<bean id="sendInfosMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="contrastMonitorTask" /> //如果代码配置到这里就可以了
<property name="targetMethod" value="contrastSendMonitor" /> // 配置文件配置需要执行的方法
<property name="concurrent" value="false" /> //多个Trigger使用同一个jobDtail 可能会产生并发现象 加入false会在前一个Trigger执行完毕后再执行下一个,相当于推迟执行,所以这里根据实际情况进行配置
</bean>
<bean id="sendInfosTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="sendInfosMethod" />
<!-- 发送待发送信息定时表达式 ,每一分钟执行一次 -->
<property name="cronExpression" value="${corn.expression}" /> // properties文件写入cron表达式
</bean>
<!-- 配置调度工厂 -->
<bean id="VatSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="sendInfosTrigger" />
</list>
</property>
</bean>
</beans>