Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

轮询产品设有多属性的BUG #535

Open
PengyuDeng opened this issue Jul 5, 2024 · 9 comments
Open

轮询产品设有多属性的BUG #535

PengyuDeng opened this issue Jul 5, 2024 · 9 comments

Comments

@PengyuDeng
Copy link
Contributor

绑定属性很多的时候,就会导致平台不会每个设备都向mqtt下发读请求,一般只有最后一个能够下发成功

企业微信截图_17201650315808
企业微信截图_17201650441136

设备是网关子设备,产品下有3个设备
当配置轮询属性配置为400个的时候,jetlinks的日志正确的显示send,但订阅EMQX后发现只下发了最后一个设备读取属性。
当配置轮询属性配置为200个的时候,一切正常

@zhou-hao
Copy link
Member

zhou-hao commented Jul 5, 2024

检查emqx 有没有丢弃数据

@PengyuDeng
Copy link
Contributor Author

文件是emqx抓取topic的信息。
[email protected]_test_2024-07-05.log

配置如图所示
image

文件显示,当轮询参数过多的时候,Jetlinks-develop只会去读取高要-固定电台,后续设置为读取200个参数,Jetlinks-develop就会读取新桥-固定电台(另一个在线设备)

@PengyuDeng
Copy link
Contributor Author

PengyuDeng commented Jul 5, 2024

[email protected]_test_2024-07-05.log

设置为读取5个参数没问题,能同时读取两个在线设备

@zhou-hao
Copy link
Member

zhou-hao commented Jul 5, 2024

设备日志也没有?

@PengyuDeng
Copy link
Contributor Author

@PengyuDeng
Copy link
Contributor Author

然后我发现,只要打个断点等待一段时间放过去,就能对多个在线设备的很多参数进行轮询。不会丢失下发读取指令。
断点如下。

企业微信截图_17201730614819
如果不打断点,400多个参数,只能一个设备去读

@zhou-hao
Copy link
Member

zhou-hao commented Jul 8, 2024

看看DeviceOperationBroker使用的哪个实现

@PengyuDeng
Copy link
Contributor Author

PengyuDeng commented Jul 8, 2024

RpcDeviceOperationBroker
发现是每次发送第一个设备的消息时,emqx接收到消息后,与jetlinks连接断开(不会断开MQTTX连接),所以导致后续无法发消息至emqx(QOS0)。
emqx页面上jetllinks刷新连接平台时间,其本次重连时间与上次连接时间约等于轮询的间隔,至多差几秒。

@PengyuDeng
Copy link
Contributor Author

日志显示,发送后连接断开
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants