diff --git a/src/main/java/com/tuoheng/machine/command/Transaction.java b/src/main/java/com/tuoheng/machine/command/Transaction.java index d2002bf..00b5627 100644 --- a/src/main/java/com/tuoheng/machine/command/Transaction.java +++ b/src/main/java/com/tuoheng/machine/command/Transaction.java @@ -26,7 +26,7 @@ public class Transaction { /** * 事务超时时间(毫秒) */ - private long timeoutMs = 10000; // 默认10秒 + private long timeoutMs = 20000; // 默认10秒 public Transaction(String name, CommandType commandType) { this.name = name; diff --git a/src/main/java/com/tuoheng/machine/instruction/CallbackConfig.java b/src/main/java/com/tuoheng/machine/instruction/CallbackConfig.java index 41e8ea0..ebc599e 100644 --- a/src/main/java/com/tuoheng/machine/instruction/CallbackConfig.java +++ b/src/main/java/com/tuoheng/machine/instruction/CallbackConfig.java @@ -40,7 +40,7 @@ public class CallbackConfig { * 超时时间(毫秒) */ @Builder.Default - private long timeoutMs = 3000; + private long timeoutMs = 10000; /** * 事务ID字段路径(用于匹配回调消息,如 "tid") diff --git a/src/main/java/com/tuoheng/machine/instruction/Instruction.java b/src/main/java/com/tuoheng/machine/instruction/Instruction.java index fc85060..597f407 100644 --- a/src/main/java/com/tuoheng/machine/instruction/Instruction.java +++ b/src/main/java/com/tuoheng/machine/instruction/Instruction.java @@ -43,7 +43,7 @@ public interface Instruction { * 获取指令超时时间(毫秒) */ default long getTimeoutMs() { - return 60000; // 默认60秒 + return 1000; // 默认10秒 } /** diff --git a/src/main/java/com/tuoheng/machine/mqtt/MqttCallbackRegistry.java b/src/main/java/com/tuoheng/machine/mqtt/MqttCallbackRegistry.java index 250c536..cd8de92 100644 --- a/src/main/java/com/tuoheng/machine/mqtt/MqttCallbackRegistry.java +++ b/src/main/java/com/tuoheng/machine/mqtt/MqttCallbackRegistry.java @@ -342,4 +342,18 @@ public class MqttCallbackRegistry { public int getCallbackCount() { return localHandlers.size(); } + + /** + * 清理所有回调(仅用于测试环境) + * 警告:此方法会清理所有回调,包括未超时的,仅应在测试环境中使用 + */ + public void cleanupAllCallbacks() { + List allCallbacks = callbackStore.getAllCallbacks(); + for (MqttCallbackInfo callbackInfo : allCallbacks) { + log.debug("清理MQTT回调: callbackId={}, topic={}", + callbackInfo.getCallbackId(), callbackInfo.getTopic()); + unregisterCallback(callbackInfo.getCallbackId()); + } + log.info("已清理所有MQTT回调,共{}个", allCallbacks.size()); + } } diff --git a/src/test/java/com/tuoheng/machine/ComprehensiveDrcStateMachineTest.java b/src/test/java/com/tuoheng/machine/ComprehensiveDrcStateMachineTest.java index 8fa9384..3f06c74 100644 --- a/src/test/java/com/tuoheng/machine/ComprehensiveDrcStateMachineTest.java +++ b/src/test/java/com/tuoheng/machine/ComprehensiveDrcStateMachineTest.java @@ -78,6 +78,15 @@ public class ComprehensiveDrcStateMachineTest { log.info("\n========================================"); log.info("完成测试: {}", testInfo.getDisplayName()); log.info("========================================\n\n"); + + // 清理所有回调,避免影响后续测试 + try { + Thread.sleep(200); // 等待当前测试的回调完成 + mqttCallbackRegistry.cleanupAllCallbacks(); + log.info("已清理所有回调,准备下一个测试"); + } catch (InterruptedException e) { + log.warn("清理回调时被中断", e); + } } /**