liusuyi
2025-03-19 d267efe74181bbc89e7ecda1032f11965984769b
ard-work/src/main/java/com/ard/tianyu/websocket/handler/BaseSubscriptionManager.java
@@ -23,10 +23,10 @@
    /**
     * 订阅指定设备的数据
     */
    public void subscribe(String boxSn, Long userId) {
    public void subscribe(String boxSn, Long userId,Integer period) {
        subscriptions.computeIfAbsent(boxSn, k -> new HashSet<>()).add(userId);
        if (subscriptions.get(boxSn).size() == 1) {
            startPushTask(boxSn);
            startPushTask(boxSn,period);
        }
    }
@@ -46,14 +46,14 @@
    /**
     * 启动推送任务
     */
    private void startPushTask(String boxSn) {
    private void startPushTask(String boxSn,Integer period) {
        // 如果已经存在任务,则不再创建
        if (pushTasks.containsKey(boxSn)) {
            return;
        }
        ScheduledFuture<?> future = scheduler.scheduleAtFixedRate(() -> {
            sendDataToSubscribers(boxSn);
        }, 0, 2, TimeUnit.SECONDS);
        }, 0, period, TimeUnit.SECONDS);
        pushTasks.put(boxSn, future);
    }