Spring Quartz使用及配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Megustas_JJC/article/details/83784471

Quartz是一个开源的定时任务框架,在一些日常的任务中,我们经常有一些这样的需要,比如我们需要隔多少分钟去扫描或者检查一下某些文件,或者在指定的时间点内去处理一些文件。这些定时的任务更多的是一种批处理任务。在一些常用的实现里我们会使用shell脚本来完成这份工作。使用shell脚本来完成的这些任务相对来说是特定于某个任务的,不具备通用性,而且根据问题性质的复杂程度,有时候我们需要提高定时任务的可靠性和性能,这个时候单纯的用一些脚本来处理就显得非常困难和复杂了 。于是quartz这个框架就能帮我们不少忙。

jobDetail定义:

用名为PorcessExcuterTrigger的Trigger来驱动调度jobDetail,由于定义的是CronTrigger,因此通过设置cronExpression来设置jobDetail的执行时间,如下是jobDetail的配置:

	<bean id="PorcessExcuter"
		  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<bean class="com.service.Query.QueryScheduler" />
		</property>
		<property name="targetMethod" value="executeProcesser" />
		<property name="concurrent" value="false" />
	</bean>

Trigger定义:

	<bean id="PorcessExcuterTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="PorcessExcuter" />
		<property name="cronExpression" value="* * */1 * * ?"/>
	</bean>

scheduler定义:

要让这些定义好的job能够跑起来,我们还需要有一个scheduler,在spring里,这些也是准备好了的。针对前面的jobDetail和trigger,它的典型配置如下:

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	<property name="triggers">
		<list>
			···
			<ref bean ="PorcessExcuterTrigger" />
			···
		</list>
	</property>
</bean>

一个任务调度的示例。它的主要步骤为1.定义job 2. 定义trigger 3. 定义scheduler来拼接。

参考:http://websystique.com/spring/spring-4-quartz-scheduler-integration-example/

https://docs.spring.io/spring/docs/4.1.4.RELEASE/spring-framework-reference/htmlsingle/#scheduling-quartz

猜你喜欢

转载自blog.csdn.net/Megustas_JJC/article/details/83784471