我有一个mqtt(paho)文件,它侦听iot消息,然后执行一些操作。在一个测试项目中,我有两个进程,一个是“播放音频”,另一个是“停止”该进程
def on_connect(self, mosq, obj, rc):
mqttc.subscribe(MQTT_TOPIC_START, 0)
mqttc.subscribe(MQTT_TOPIC_STOP, 0)
def on_message(mosq, obj, msg):
print "Topic: " + str(msg.topic)
print "QoS: " + str(msg.qos)
print "Payload: " + str(msg.payload)
iot_data = json.loads(str(msg.payload))
if (iot_data["action"]== 'capture'):
subprocess.call('python play_audio.py', shell=True)
elif (iot_data["action"]== 'stop'):
subprocess.call('pkill -f play_audio.py', shell=True)
第一个进程(播放音频)工作得很好,但第二个进程只能在第一个进程完成后调用。因此,第二进程不能停止“播放音频”
如何通过第二个进程停止第一个进程“播放音频”? 任何建议都将不胜感激
subprocess.call()
是同步的。从手册(我的重点):如果需要异步调用,请使用^{}
相关问题 更多 >
编程相关推荐