You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.qyft.ms.service;
import com.qyft.ms.common.constant.WebSocketMessageType; import com.qyft.ms.device.model.bo.DeviceStatus; import com.qyft.ms.device.service.DeviceStatusService; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service;
import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit;
@Slf4j @Service @RequiredArgsConstructor public class StatusService {
private final WebSocketService webSocketService; private final DeviceStatusService deviceStatusService;
// @PostConstruct
public void init() { ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); executorService.scheduleAtFixedRate(() -> { try { DeviceStatus deviceStatus = deviceStatusService.getDeviceStatus(); webSocketService.pushMsg(WebSocketMessageType.STATUS, deviceStatus); } catch (Exception e) { if (!executorService.isShutdown()) { executorService.shutdown(); // 关闭 ScheduledExecutorService
} log.error("定时推送设备状态异常", e); } }, 10, 100, TimeUnit.MILLISECONDS); } }
|