package com.zy.asrs.task; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.BasMap; import com.zy.asrs.service.BasMapService; import com.zy.common.utils.RedisUtil; import com.zy.core.enums.RedisKeyType; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; @Component @Slf4j public class RealtimeBasMapScheduler { @Autowired private RedisUtil redisUtil; @Autowired private BasMapService basMapService; /** * 每分钟从redis中更新地图数据到数据库中 */ @Scheduled(cron = "1 * * * * ? ") private void execute(){ List basMaps = basMapService.selectList(new EntityWrapper().orderBy("lev", true)); for (BasMap basMap : basMaps) { Integer lev = basMap.getLev(); Object data = redisUtil.get(RedisKeyType.MAP.key + lev); if (data == null) { continue; } BasMap redisMap = JSON.parseObject(data.toString(), BasMap.class); basMap.setLastData(basMap.getData()); basMap.setData(redisMap.getData()); basMap.setUpdateTime(new Date()); basMapService.updateById(basMap);//更新 } } }