发送大量发布消息:正在进行中的发布过多错误

2023-11-30

这是泛美卫生组织异步客户端:

    client = new MqttAsyncClient(appProps.getProperty("mqtt.broker"),
            appProps.getProperty("mqtt.clientId"), new MemoryPersistence());
    client.setCallback(this);
    client.connect(null, new IMqttActionListener() {
        @Override
        public void onSuccess(IMqttToken imt) {
            try {
                client.subscribe(Constants.internalTopics, Constants.internalTopicQOS);
            } catch (MqttException ex) {
                ex.printStackTrace();
            }
        }

        @Override
        public void onFailure(IMqttToken imt, Throwable thrwbl) {
            thrwbl.printStackTrace();
        }
    });

这里我循环发送消息:

        while (iterator.hasNext()) {
            try {
               client.publish("user/" + userId + "/downstream", mqttMessage);
            } catch(Exception ex) {
                ex.printStackTrace();
            }
        }

Error:

Too many publishes in progress (32202)
    at org.eclipse.paho.client.mqttv3.internal.ClientState.send(ClientState.java:436)
    at org.eclipse.paho.client.mqttv3.internal.ClientComms.internalSend(ClientComms.java:121)
    at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendNoWait(ClientComms.java:139)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:858)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:836)

我在用Rabbitmq


看着source对于 Paho 客户端,任何给定时间的默认最大飞行消息数似乎都是 10。

因此,考虑到您的发布循环有多紧,网络层的速度只会稍微减慢,并且在任何给定时间发送的过程中最终都会有超过 10 条消息。如果您尝试以大于 0 的 QOS 发送,情况只会变得更糟。

您可以使用以下命令更改默认值setMaxInflight(int n)方法上的MQTTConnectionsOptions传递给的对象client.connect() method.

我建议你尝试找到一个合适的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送大量发布消息:正在进行中的发布过多错误 的相关文章

随机推荐

  • 无法在android中的graph api中获取性别

    我无法在这里获取性别OnCompleted功能 我可以获得其他参数 例如id name email 目前应用程序处于开发模式 这是昨天工作的 Code GraphRequest request GraphRequest newMeReque
  • 使用“ADODB.Stream”将ANSI转换为UTF-8,第一行丢失1-2个字符

    我需要将 ANSI csv 文件转换为 UTF 8 csv 文件 下面的代码可以工作 但第一个字符丢失 请参阅随附的屏幕截图 原始文件 客户 输出文件 客户 Function Convert myFileIn myFileOut Dim s
  • JavaScript this 来自 jQuery this

    有没有办法从 jQuery this 获取 JavaScript this this this 任何this is this不是 jquery 而是一个特殊的 有些复杂的 javascript 关键字 用于描述当前的执行范围 您的挑战可能是
  • 无法识别 Visual Studio 代码任务构建“C:\Program”

    因此 我使用 Visual Studio Code 来构建并运行一个简单的 C 程序 我使用tasks json来处理编译 基于此 如何使用 VS Code 和 cl 编译 C 代码 See https go microsoft com f
  • Pymssql 是否可以与 MS SQL Server 建立安全连接 (SSL)?

    我正在使用 Python 代码 Pymssql 库 从 MS SQL 服务器进行查询 但是我想知道是否有任何方法可以使连接安全并加密从服务器发送到 python 的数据 Thanks 是的 它可以 您需要通过 OpenSSL 支持 SSL
  • boost:thread - 编译器错误

    我想在程序中使用 boost thread 但出现以下编译器错误 Visual Studio 2005 Error 1 error C2064 term does not evaluate to a function taking 0 ar
  • 将一个方阵中的 NA 添加并将其放入另一个方阵中

    我想知道是否可以选择NA列和NA行从d1方阵并将它们放入d2方阵来实现我的DESIRED d3方阵 这是一个玩具示例 并且d1 and d2方阵可以是任意维数 这样就实现了类似的功能NA替换品表示赞赏 m1 a1 a2 a3 a4 a5 a
  • 如何清除游戏中心实时排行榜数据?

    是否可以清除实时游戏中心排行榜 而不是沙盒排行榜 的数据 如果无法清除 是否有办法隐藏排行榜不显示 谢谢 转到 iTunesConnect 中的排行榜 并将分数范围更改为超出范围的值 例如 我的一些高尔夫球手发布的成绩远远低于标准杆 我将范
  • 在 Mac OS X 10.10 上以 64 位模式执行 python

    我正在尝试在 64 位模式下执行 python 从这篇文章 如何在 Mac OS X 上强制使用 64 位 python 我检查了 python 都有 32 64 位二进制 gt lipo info which python gt Arch
  • 在 ruby​​ gpgme 中使用密码回调

    我正在使用 ruby gpgme gem 1 0 8 我的密码回调未被调用 def passfunc args fd args last io IO for fd fd w io puts mypassphrase io flush end
  • 回发后在 TextBox 中设置焦点

    我有一个简单的页面 我想根据文本框中的值过滤列表框 两者都在 UpdatePanel 中 这可以正常工作 但是 在回发后 文本框失去了焦点 所以我将焦点设置回 page load 中 然后我注意到光标现在位于文本的开头 而我希望它位于末尾
  • 使用selenium Python滚动到无限加载页面的末尾

    我正在使用 Selenium 从 Twitter 上抓取关注者姓名 并且该页面是无限的 每当我向下滚动时 我都可以看到新的关注者 不知何故 我想转到页面底部 以便我可以scrape所有的追随者 while number 5 driver e
  • 如何在 SML/NJ 中进行按位与运算?

    我正在编写的程序需要它 重复平方来计算 x n 我似乎找不到它的语法 或者是否支持它 它们可在Word8 and Word结构 let open Word8 infix andb orb xorb notb lt lt gt gt gt g
  • async wait 任务空引用异常

    I am getting NullReferenceExceptions on a webforms project I m maintaining The catch is that there is no stacktrace for
  • 解析命令调用的输出

    因此 我尝试从 python 执行 shell 命令 然后将其存储在数组中或直接解析管道 shell 命令 我通过 subprocess 命令管道传输 shell 数据 并使用 print 语句验证输出 它工作得很好 a subproces
  • 单击/激活 jQuery UI 选项卡时触发函数?

    我正在使用 jQuery 选项卡 其中一个选项卡中的内容是通过 AJAX 调用检索的 但我不想在单击选项卡 激活 之前触发调用 因为用户可能不一定单击它 最好的方法是什么 jQuery UI 提供select and show选项卡的事件
  • 默认情况下,Java 类会隐式扩展 java.lang.Object [重复]

    这个问题在这里已经有答案了 在本教程中 http www studytonight com java object and classes 我读到java 类可以选择扩展一个父类 默认情况下 它将扩展 java lang Object No
  • 如何在 MATLAB 中使用线性索引为 4-D 矩阵的对角线赋值?

    我有一个 4 维矩阵A尺寸的NxNxPxQ 如何轻松地将每个对角线值更改为 1NxN矢量化方式的二维子矩阵 结合 gnovice 的建议 对元素进行索引的一种简单方法是 N P Q size A get dimensions of your
  • 在下载过程中使用 swingworker 更新 JProgressBar

    问题解决了 非常感谢 Trashgod 和 HoverCraftFullOfEels 我终于通过使用下面的示例并稍微改变它得到了这个概念 更改允许缩放进度条 默认为 100 个单位 再次感谢您的耐心和愿意解决这个问题 意味着很多人 凯特 p
  • 发送大量发布消息:正在进行中的发布过多错误

    这是泛美卫生组织异步客户端 client new MqttAsyncClient appProps getProperty mqtt broker appProps getProperty mqtt clientId new MemoryP