我有mqtt客户机,它向代理发布一些消息。在
信息如下所示
{
"message": {
"body": {
"software_sub_version": "O",
"software_version": 1.25,
"hardware_id": 17,
"machine_id": 39
},
"header": {
"Machine_name": "MY_MACHINE",
"message_type": "machine_data",
"message_version": "1.0",
"publish_time": "2017-02-22T06:44:27.281644+00:00"
}
}
}
在发布消息时,我检查是否存在与代理的连接,如果没有,则使用以下代码将消息存储到文件中。在
^{pr2}$我还需要将存储的消息一个一个地发送给代理。在
while True:
if stored_msg_present:
send_stored_msg_to_broker()
最好的方法是什么。 像tinydb这样的数据库很好用。 但我无法从tinydb数据库中检索元素。在
保存到数据库或文件或只是保存在内存中取决于您和您的环境。在
如果连接很少连接,并且通常断开很长时间,那么保存到数据库或文件更容易节省内存。但是如果你的信息少了,你还是可以把它保存在内存中。(例如队列或列表)
如果连接非常稳定并且很少断开连接,并且会在短时间内恢复(例如几秒钟),那么保存到内存可能不是一个坏选择。但是如果你的信息增长很快(例如每秒数千条信息),那么把它们全部保存在内存中可能不是一个好的选择。在
比较文件和数据库,如果你要保存大量的数据,可以用多线程编程来访问它们,或者需要查询它们来选择先上传哪一个,那么数据库就更容易处理了。如果您的数据简单且较少,则可以使用文件更容易地处理它们。在
环境是另一个考虑因素,如果你使用一些低质量的芯片,也许你应该考虑它们的性能或稳定性。(例如内存不足或磁盘已满)
最后是数据的重要性。如果你的内存和磁盘很短,那么丢失一些数据并不是很重要,也许你可以直接丢弃它们,省去处理它们的精力。一切由你决定。在
相关问题 更多 >
编程相关推荐