Spring集成Quartz的定时任务

本文介绍了如何在Spring项目中配置并使用定时任务。通过XML声明式配置方式,详细展示了两个具体的定时任务案例,包括任务的触发时机及执行方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中用到了定时任务,定期检查未完成事项,记录一下

  • 在xml文件中进行声明式配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<!-- 调度的事务类 -->
	<bean name="morningClassJob" class="com.jy.common.utils.Quartz" />

	<!-- 调度事务的方法 -->
	<bean id="jobDetail"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="morningClassJob"></property>
		<property name="targetMethod" value="check"></property>
		<property name="concurrent" value="false"></property>
	</bean>

	<!-- 设置时间 -->
	<bean id="morningJobTrigger"	class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="jobDetail"></property>
		<property name="cronExpression">
			<!-- <value>0 0/1 * * * ?</value> -->
			<value>0 0 0 * * ?</value>
		</property>
	</bean>

	<!-- 任务2配置 -->
	<bean name="job2" class="com.jy.common.utils.Quart2" />
	<bean id="jobDetail_2"
		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<ref bean="job2" />
		</property>
		<property name="targetMethod">
			<value>sayHello</value>
		</property>
	</bean>							  
	<bean id="cronTrigger_2"	class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail">
			<ref bean="jobDetail_2" />
		</property>
		<property name="cronExpression">
			<value>0/1 * * * * ?</value>
		</property>
	</bean>


	<!-- 监听 -->
	<bean id="schedulerFactoryBean"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref bean="morningJobTrigger" />
 				<ref bean="cronTrigger_2" /> 
			</list>
		</property>
	</bean>
</beans>
  1. 调度事务类即是java中的bean。
  2. 将事务类配置到事务方法中,targetMethod属性即是类中待执行的方法。concurrent属性为:对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将不会在第一个job完成之前开始
  3. 将JobDetail 加入到Trigger中,并指定执行时间
  4. 设置监听

public class Quartz {
	public void check() {
		System.out.println("定时任务");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值