首页 > 解决方案 > Python Paho MQTT:如果充斥着 mqtt 消息,代理没有响应?

问题描述

我是使用带有 Python 功能的 Paho Mqtt 启用的 Flask 服务器。

  1. 每秒各种 mqtt 消息发送到 mqtt 代理,然后在我收到消息后立即存储在数据库中,但一段时间后 mqtt 代理无法响应并变慢

  2. 将消息插入数据库时​​,有些消息没有收到,因为在插入时如果有消息来了,它不会捕获。

3.我的flask服务器忙于收集mqtt消息,导致网站变慢

这是实现部分-

  app.config['MQTT_BROKER_URL'] = 'xxxxxx'
  app.config['MQTT_BROKER_PORT'] = 1883
  app.config['MQTT_REFRESH_TIME'] = 1.0


  mqtt = Mqtt(app)
  socketio = SocketIO(app)
  @socketio.on('publish')
 def handle_publish(json_str):
    data = json.loads(json_str)
    mqtt.publish(data['topic'], data['message'])


@mqtt.on_connect()
def handle_connect(client, userdata, flags, rc):
   mqtt.subscribe('topic1_name')
   mqtt.subscribe('topic2_name')

@mqtt.on_message()
def handle_mqtt_message(client, userdata, message):
         insert message to database
@app.route('/')
def index():
   return render_template('new.html') 

无论如何要分离用于收集 mqtt 消息和插入数据库的脚本以减少负载?可以做些什么来使 mqtt 代理更具响应性?

标签: pythonflaskpaho

解决方案


推荐阅读