Springboot定时器的使用

定时器修改物资状态

想要实现功能:物资有报废日期,当物资过期,需要将物资状态改为已过期

1、添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

2、启动类加注解

@EnableScheduling

3、编写修改接口

1、mapper
/**
     * 定期维护物资可用状态
     * @param id
     * @param status
     * @return
     */
    boolean updateStatus(@Param("id") String id,@Param("status") String status);
 /**
     * 获取所有数据
     * @return
     */
    List<Supply>  list();
2、mapper.xml
<!--定期维护物资可用状态-->
<update id="updateStatus">
    update supplies set  status=#{status} where id=#{id}
</update>

<select id="list" resultType="com.cnooc.emergency.entity.Supply">
    select * from supplies
</select>
3、service
/**
 * 定期维护物资状态
 * @param id
 * @param status
 * @return
 */
boolean updateStatus(String id,String status);

List<Supply> list();
4、serviceImpl,加注解@Scheduled
/**
 * 查询所有
 * @return
 */
@Override
public List<Supply> list() {
    return supplyMapper.list();
}
/**
 * 定时修改物资状态
 */
@Scheduled(cron = "0 0 9 * * ?")
public void Task(){
    Date date = new Date();
    long timeNow = date.getTime();
    List<Supply> list = supplyMapper.list();
    for (int i = 0; i < list.size(); i++) {
        //获取遍历id
        String id = list.get(i).getId();
        // 获取设置过期时间并转为long型
        long time = list.get(i).getExpirationTime().getTime();
        //比较过期时间 如果过期时间小于当前时间,状态改为已过期
        if(time < timeNow){
            supplyMapper.updateStatus(id,"已过期");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值