0

我在 spring 中使用 spring mqtt 集成配置了一个 MQTT 订阅者。在 handleMessage 方法中,我正在执行某些需要时间的业务逻辑。在测试时,我注意到当我发送大量消息时,代理重新发布与原始消息相同的消息(我检查了消息有效负载是否重复,它是作为原始消息发送的)。MQTT 代理甚至在订阅者可以发送 PUCOMP 之前再次发布消息。QOS 级别设置为 2

4

1 回答 1

0

您不应该在handleMessage回调中执行长时间运行的任务,因为这是在 MQTT 客户端网络线程上运行的。

如果你有一个长时间运行的任务,你应该把它交给一个单独的线程池来运行。

于 2018-12-11T11:48:51.267 回答