from mqtt.subscribe import *
from config.config import *
from utils.air_condition import get_air
import threading
from multiprocessing import Process
import sys
import signal
def mqtt_sub():
mqtt_sub = MqttSub()
mqtt_sub.username_pw_set(mos_username, mos_pwd)
try:
mqtt_sub.run(mos_host, mos_port, keepalive)
except KeyboardInterrupt:
mqtt_sub.disconnect()
def multi_process():
p_list = list()
p1=Process(target=mqtt_sub,)
p_list.append(p1)
p2=Process(target=get_air)
p_list.append(p2)
# def kill_child_processes(signum, frame):
# for p in p_list:
# p.terminate()
# sys.exit(1)
# signal.signal(signal.SIGTERM, kill_child_processes)
#
# for p in p_list:
# p.daemon = True
# p.start()
# for p in p_list:
# p.join()
try:
for p in p_list:
p.daemon = True
p.start()
for p in p_list:
p.join()
except KeyboardInterrupt:
print("mian stop...")
for p in p_list:
p.terminate()
for p in p_list:
p.join()
sys.exit(1)
if __name__ == '__main__':
multi_process()
# threading.Thread(target=mqtt_sub,daemon=True ).start()
# threading.Thread(target=get_air,daemon=True ).start()
python 多线程 多进程 退出处理
最新推荐文章于 2024-07-15 13:34:16 发布