Spring与Quartz结合生成定时任务

本文介绍如何使用Spring框架整合Quartz实现定时任务的配置。通过XML方式定义了一个每13:13分执行的任务及一个每10分钟循环执行的任务。详细解释了cron表达式的含义。

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


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd ">
<beans default-autowire="byName">
<bean id="timetaskScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="countSalaryTrigger"/>
</list>
</property>
</bean>

<bean id="countSalaryTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="countSalary"/>
<property name="targetMethod" value="init"/>
</bean>
</property>
<property name="cronExpression" value="0 13 13 * * ?"/>
</bean>
<bean id="countSalary" class="org.frame.base.quartz.CountSalary" singleton="true"/>
</beans>

这种方式定义任务很简单,这是定时任务,到13:13分执行.
0 13 13 * * ?


简单的定时任务调度这样就可以了,循环任务调度只需要改下cronExpression就可以了:
0 0/10 * * * ?

每十分钟执行一次。

countSalary就一Java类,里面有一个方法名为init:

package org.frame.base.quartz;

public class CountSalary {

private void init(){
System.out.println("hello quartz!");
}
}



有人可能有疑问这种表达式该怎么写:
第一个0 表示0妙.
第二个13表示13分钟,0/10表示延迟0分钟,每10分钟执行一次.
第三个13表示13小时,*表示任意小时
第四个*表示任意月
第五个*表示星期
第六个?表示任意日期.
最后一个一般不定义,定义年的任务不切实际


其实一般的任务调度这样就可以了[定时任务,循环任务],如果要实现指定任意时间的调度,请看下一节.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值