| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package com.tmzn.devicelinkykc.taskQueue;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.tmzn.devicelinkykc.constant.Constant;
- import com.tmzn.devicelinkykc.constant.DeviceOnlineStatus;
- import com.tmzn.devicelinkykc.constant.RedisConstant;
- import com.tmzn.devicelinkykc.entity.Device;
- import com.tmzn.devicelinkykc.entity.DeviceStatus;
- import com.tmzn.devicelinkykc.entity.param.TransCheck;
- import com.tmzn.devicelinkykc.frameMsg.frameType.HeartFrameSend;
- import com.tmzn.devicelinkykc.frameMsg.frameType.LoginFrame;
- import com.tmzn.devicelinkykc.redis.RedisCache;
- import com.tmzn.devicelinkykc.service.DeviceService;
- import com.tmzn.devicelinkykc.service.DeviceStatusService;
- import com.tmzn.devicelinkykc.socket.DeviceConnectionMsg;
- import com.tmzn.devicelinkykc.socket.SocketHandle;
- import com.tmzn.devicelinkykc.taskQueue.queue.MsgHeartQueue;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
- import org.springframework.stereotype.Component;
- import java.io.IOException;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import java.util.concurrent.*;
- /**
- * @author xp
- * @date 2024/3/15
- * @explain " 心跳定时任务 "
- */
- @Component
- @Slf4j
- public class HeartTask {
- @Autowired
- private SocketHandle socketHandle;
- @Autowired
- private DeviceStatusService deviceStatusService;
- @Autowired
- private MsgHeartQueue msgHeartQueue;
- //理解:云快充的心跳30s未收到设备需要重新登录,这里直接拿连接socket的设备上报消息
- public void start(){
- ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1);
- Runnable task = new Runnable() {
- @Override
- public void run() {
- Map<String, DeviceConnectionMsg> deviceConnectionMsgMap = socketHandle.getDeviceConnectionMsgMap();
- msgHeartQueue.add(deviceConnectionMsgMap);
- }
- };
- scheduler.scheduleAtFixedRate(task,0,13*1000, TimeUnit.MILLISECONDS);
- }
- }
|