SpringMVC使用定时器实现定时任务

为什么要使用定时器?
解决项目中需要在特定的时间点中进行某些任务


废话不多说,下面给出最简单的实现方法:


  1. 先导入依赖
<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>
  1. 依赖导入后,先去配置一下springMVC的配置文件
<!--约束-->
<beans xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
	http://www.springframework.org/schema/task
	http://www.springframework.org/schema/task/spring-task.xsd">

 <!--定时器-->
    <bean id="beanid" class="quatz.Quatz"/>
    <task:scheduled-tasks>
        <task:scheduled ref="beanid" method="updateInfo" cron="*/5 * * * * ?"/>
        <!--<task:scheduled ref="beanid" method="execute" cron="0 2 19 7 10 ? "/>-->
        <!--可配置多个方法-->
    </task:scheduled-tasks>
  1. 编写映射文件
public interface SignMapper {    
	void autoUpdate();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="mapper.SignMapper" >

  <update id="autoUpdate">
    UPDATE sign set isvaild = '0' WHERE (NOW() &lt; sign.start or NOW() &gt; sign.end) and sign.isvaild = '1'
  </update>

</mapper>
  1. 编写任务类
package quatz;

import mapper.SignMapper;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * @ Author :cy
 * @ Date   :22:04 2020/6/4
 */
public class Quatz {

    @Autowired
    private SignMapper signMapper;

    public void updateInfo() {
        System.out.println("定时任务执行!");
        signMapper.autoUpdate();
    }
}

到这里,一个简单的定时器就写完了,你可能会问,有没有其他办法,答案是有的,为什么不写?因为还没完全掌握哈哈哈哈


在这个过程中,特别要注意的就是 cron规则 ,这个规则卡了好久,虽然到现在还是不懂,不过问题不大,有一位大佬给了我一个链接

https://cron.qqe2.com/

这个链接解决了 cron 规则,对小白特别友好,不过还是建议弄懂 cron 规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值