使用client.loop_start()
,做一些事情,然后client.loop_stop()
,最后client.loop_forever()
正确吗
上下文:我的Raspberry设备上有一个bootloader.py
。引导加载程序将在设备引导时自动启动。引导加载程序连接到应用服务器(通过专用IP和主题),检查设备上安装的预期软件,下载本地不可用的较新软件,启动所需应用程序,然后引导加载程序应成为从外部侦听“服务消息”的订户。(例如:“向我发送您的状态”,“检查新软件,如果有新软件,请下载并重新启动设备”
当前实现:我已经实现了加载过程并启动了想要的应用程序。该实现使用client.loop_start()
(即使用separathethread处理通信)。下载想要的文件后,引导加载程序调用subprocess.Popen(cmd)
,并成为已启动应用程序的进程
我想要的:现在我想分离启动的应用程序的进程。引导加载程序应该成为一个永远监听的客户端。我的想法是client.loops_stop()
在与应用程序服务器的通信完成后,启动应用程序,然后client.loop_forever()
作为脚本的最后一个动作,让它永远听下去。这种方法正确吗
所描述的情况是否正常?这是一种众所周知的模式吗?如果是,你能告诉我相关的文档吗?如果不是,你能看到这种方法中的任何缺陷吗
这不是我在其他地方见过的一种模式,但如果它符合你的需要
唯一的问题是,如果调用
loop_stop()
和loop_forever()
之间的时间长于保持活动期,这将导致代理断开客户端的连接当您重新启动事件循环时,也可能会收到突发消息
相关问题 更多 >
编程相关推荐