package com.ard.zlm.redisMsg; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.MessageListener; import org.springframework.stereotype.Component; import java.util.concurrent.ConcurrentLinkedQueue; /** * 接收来自redis的GPS更新通知 * * @author lin * 监听: SUBSCRIBE VM_MSG_GPS * 发布 PUBLISH VM_MSG_GPS '{"messageId":"1727228507555","id":"24212345671381000047","lng":116.30307666666667,"lat":40.03295833333333,"time":"2024-09-25T09:41:47","direction":"56.0","speed":0.0,"altitude":60.0,"unitNo":"100000000","memberNo":"10000047"}' */ @Slf4j @Component public class RedisGpsMsgListener implements MessageListener { private final ConcurrentLinkedQueue taskQueue = new ConcurrentLinkedQueue<>(); @Override public void onMessage(@NotNull Message message, byte[] bytes) { log.debug("[REDIS: GPS]: {}", new String(message.getBody())); taskQueue.offer(message); } // @Scheduled(fixedDelay = 200, timeUnit = TimeUnit.MILLISECONDS) //每400毫秒执行一次 // public void executeTaskQueue() { // // } /** * 定时将经纬度更新到数据库 */ // @Scheduled(fixedDelay = 2, timeUnit = TimeUnit.SECONDS) //每2秒执行一次 // public void execute() { // // } }