如何解决结合loop_start,loop_stop和loop_forever;启动单独的应用程序
先使用client.loop_start()
,先做一些事情,然后再进行client.loop_stop()
,最后再进行client.loop_forever()
,这样做正确吗?
上下文:我在Raspberry设备上有一个bootloader.py
。设备启动时,引导加载程序将自动启动。引导加载程序连接到应用程序服务器(通过专用IP和主题),检查在设备上安装的预期软件,如果本地不可用,则下载较新的软件,启动所需的应用程序,然后引导加载程序应成为侦听的订户从外部访问“服务消息”。 (例如:“向我发送您的状态”,“检查新软件,如果有新更新,请下载并重新启动设备”。
当前实现:我已经实现了加载过程并启动了所需的应用程序。该实现使用client.loop_start()
(即使用separathe线程处理通信)。下载所需文件后,引导程序将调用subprocess.Popen(cmd)
,并成为启动的应用程序的过程。
我想要的东西:现在,我想分离启动的应用程序的过程。引导加载程序应成为永远监听 的客户端。我的想法是在与应用程序服务器的通信完成后client.loops_stop()
,启动应用程序,然后将client.loop_forever()
作为脚本的最后一个动作,以使其永久监听。这样的方法正确吗?
上述情况是否正常?这是众所周知的模式吗?如果是,您能指出我相关的文档吗?如果没有,您是否看到该方法有任何缺陷?
解决方法
这并不是我在其他地方看到的一种模式,但是如果它满足您的需求。
唯一的问题是,调用class ShapeNew {
constructor(name,sides,sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
perimeter() {
return this.sideLength * this.sides;
}
}
let new_square = new ShapeNew("square",4,5);
console.log(new_square.perimeter());
和loop_stop()
之间的时间长于“保持活动”时间,这将导致代理断开与客户端的连接。
重新启动事件循环时,您可能还会收到一连串消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。