control publish rate of generated persistent messages [message #1838023] |
Sat, 13 February 2021 10:04  |
Eclipse User |
|
|
|
I want to control the number of messages sent per second when the persistence type is set to MQTTCLIENT_PERSISTENCE_DEFAULT. So, for example consider that the internet is disconnected/down for 1 hour and in this 1 hour 100 messages are generated. When the connectivity is back then I see that all 100 messages are sent in burst. I want to limit this to say 10 messages per second? Is there a way to achieve this? Will setting "maxInflight" help solve the problem?
[Updated on: Sat, 13 February 2021 10:05] by Moderator
|
|
|
|
Re: control publish rate of generated persistent messages [message #1839026 is a reply to message #1838912] |
Thu, 11 March 2021 08:56   |
Eclipse User |
|
|
|
Hello. I answered this question on the paho-dev mailing list several days ago (or a remarkably similar one from someone else!). Here's what I wrote, and though now it appears that you're using the Python library, the answer is basically the same:
Quote:
You don't mention which of the man Paho libraries that you're using, but it sounds like the C lib?
Either way, I don't believe that any of the libraries will do this for you directly how you want. But just about all of them give you the ability to write this yourself pretty easily.
The thing about most MQTT client libraries is that they are very connection aware. You are normally alerted when the connection with the broker is lost, and if set for automatic reconnects, you can be alerted again when the connection is re-established.
So, when the connection is lost, rather than trying to publish messages, just put them into a local, application queue. Then, when the connection is re-established, send them at the rate that you desire.
- Frank
|
|
|
Re: control publish rate of generated persistent messages [message #1839085 is a reply to message #1839026] |
Fri, 12 March 2021 11:41  |
Eclipse User |
|
|
|
Hi Frank,
Thanks for your reply. Yes, I am using C lib.
I want to address below case with persistence mode enabled.
Consider connectivity is lost for an hour and say 100 messages are generated. If I store in the application queue and if power is turned off for some reason, I will loose these messages.
So, to overcome this, I have enabled persistence mode so that these messages will be stored in files and when power is turned on and connectivity is established, these messages can be published at desired rate.
Could you suggest the possible way to address above usecase?
|
|
|
Powered by
FUDForum. Page generated in 0.07418 seconds