Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Paho MQTT:如果MQTT消息泛滥,代理不响应?_Python_Flask_Paho - Fatal编程技术网

Python Paho MQTT:如果MQTT消息泛滥,代理不响应?

Python Paho MQTT:如果MQTT消息泛滥,代理不响应?,python,flask,paho,Python,Flask,Paho,我使用PAHOMQTT和Python特性启用Flask服务器 每秒会向mqtt代理发送各种mqtt消息,当我接收到消息时,这些消息会立即存储在数据库中,但一段时间后,mqtt代理无法响应并且速度变慢 在向数据库插入消息时,有些消息不会被接收,就像在插入时,如果有消息出现,它不会被捕获一样 3.我的flask服务器正忙于收集mqtt消息,这会减慢网站的运行速度 这里是实现部分- app.config['MQTT_BROKER_URL'] = 'xxxxxx' app.config['MQT

我使用PAHOMQTT和Python特性启用Flask服务器

  • 每秒会向mqtt代理发送各种mqtt消息,当我接收到消息时,这些消息会立即存储在数据库中,但一段时间后,mqtt代理无法响应并且速度变慢

  • 在向数据库插入消息时,有些消息不会被接收,就像在插入时,如果有消息出现,它不会被捕获一样

  • 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代理更加敏感?

    您可以考虑使用更强大的IOT消息代理(如AWS IOT)。您还可以使用异步队列(在Python标准库中)在消息等待插入数据库时保存消息。