DeviceStatusPushTask.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.tmzn.devicelinkykc.taskQueue;
  2. import com.tmzn.devicelinkykc.socket.DeviceConnectionMsg;
  3. import com.tmzn.devicelinkykc.socket.SocketHandle;
  4. import com.tmzn.devicelinkykc.taskQueue.queue.MsgCharngingQueue;
  5. import com.tmzn.devicelinkykc.taskQueue.queue.MsgFreeQueue;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Component;
  8. import java.util.Map;
  9. import java.util.concurrent.ScheduledExecutorService;
  10. import java.util.concurrent.ScheduledThreadPoolExecutor;
  11. import java.util.concurrent.TimeUnit;
  12. /**
  13. * @author xp
  14. * @date 2024/3/15
  15. * @explain " 设备状态推送任务 "
  16. */
  17. @Component
  18. public class DeviceStatusPushTask {
  19. @Autowired
  20. private MsgCharngingQueue msgCharngingQueue;
  21. @Autowired
  22. private MsgFreeQueue msgFreeQueue;
  23. @Autowired
  24. private SocketHandle socketHandle;
  25. /**
  26. * 充电中任务状态
  27. */
  28. public void chargingStatus(){
  29. ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1);
  30. Runnable task = new Runnable() {
  31. @Override
  32. public void run() {
  33. Map<String, DeviceConnectionMsg> deviceConnectionMsgMap = socketHandle.getDeviceConnectionMsgMap();
  34. msgCharngingQueue.add(deviceConnectionMsgMap);
  35. }
  36. };
  37. scheduler.scheduleAtFixedRate(task,0,15*1000, TimeUnit.MILLISECONDS);
  38. }
  39. /**
  40. * 空闲状态上送
  41. */
  42. public void freeStatus(){
  43. ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1);
  44. Runnable task = new Runnable() {
  45. @Override
  46. public void run() {
  47. Map<String, DeviceConnectionMsg> deviceConnectionMsgMap = socketHandle.getDeviceConnectionMsgMap();
  48. msgFreeQueue.add(deviceConnectionMsgMap);
  49. }
  50. };
  51. scheduler.scheduleAtFixedRate(task,100,3*60*1000, TimeUnit.MILLISECONDS);
  52. }
  53. }