python - Python Paho MQTT:如果充斥着 mqtt 消息,代理没有响应?
问题描述
我是使用带有 Python 功能的 Paho Mqtt 启用的 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 代理更具响应性?
解决方案
推荐阅读
- html - 如何摆脱酒吧周围的白色边框
- shell - 用于在输出文本文件中将句子拆分为新格式的 Shell 脚本?
- javascript - 如何在 contenteditable div 中创建无法删除的单词(JavaScript)
- python - 为什么在执行 sklearn 分解模块中存在的 KernalPCA 方法时出现此错误
- typescript - 将@types/foo 定义与另一个导出(以及其他) foo 包的模块一起使用?
- java - 数据表多项选择素面
- c++ - Forward Iterator - Const version issue
- macos-big-sur - Javascript date new Date('2020-1-12') 在 Big Sur 中不起作用
- logstash - 您可以将日志转发到不同日志类别的不同目标吗?
- git - 在图中显示没有分支引用的 git 提交