Java Spring Quartz 定时任务

  1. 什么是定时任务
    定时任务分为两种:
    一种是每隔指定时间则触发一次,在Quartz中对应的触发器为:org.springframework.scheduling.quartz.SimpleTriggerBean;
    每到指定时间则触发一次,在Quartz中对应的调度器为:org.springframework.scheduling.quartz.CronTriggerBean;
    (ps:并非每种任务都可以使用这两种触发器,如java.util.TimerTask任务就只能使用第一种。Quartz和spring task都可以支持这两种触发条件)
  2. 在Quartz中的作业类有两种方式
    1.作业类需要继承自特定的作业类基类,如Quartz中需要继承自org.springframework.scheduling.quartz.QuartzJobBean;java.util.Timer中需要继承自java.util.TimerTask。
    2.作业类即普通的java类,不需要继承自任何基类。
  3. 第二种种作业类的实现过程
    1.Jar准备:Spring核心jar 包,quartz.jar ,spring-context-support.jar (博主使用的是Spring4.x 以及quartz2.3)
    2.任务类
    public class Work {
    public void OneWork(){
    System.out.println("任务执行中");
    }
    }

    3.在Spring的配置文件中进行配置定时任务(每隔2秒执行一次)
<!-- 编写任务类 -->
    <bean id="work" class="com.WTU.ssm.TimeTask.Task.Work">
    </bean>
    <!-- 配置作业类 -->
    <bean id="doWork"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="work"></property>
        <property name="targetMethod" value="OneWork" />
    </bean>
    <!-- 配置作业调度的触发方式(触发器) -->
    <bean id="simpleTrigger"
        class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
        <property name="jobDetail" ref="doWork" />
        <property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->
        <property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 -->
    </bean>
    <!-- 配置调度工厂  -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="simpleTrigger" />
            </list>
        </property>
    </bean>
4.如果执行每天定时的任务将触发器进行修改如下:
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="doWork" />
<!—每天8:00运行一次 -->
<property name="cronExpression" value="0 0 8 * * ?" />
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值