socketserver.server_forever()+多线程处理数据并存入数据库

2018-08-03 10:53:42 +08:00
 zy820

我现在在用 socketserver.server_forever()处理请求,在 handle ()里面接受数据存入 queue,现在想用另外个线程取出 queue 数据并存入数据库,想问这个新线程在哪里开启呢?发现 server_forever 一直运行,新线程启动不了 if name == "main": HOST, PORT = "0.0.0.0", 9999 # Linux server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) # 线程 server.serve_forever() connect_sql() init_db() for i in range(multiprocessing.cpu_count()): t = threading.Thread(target=getsensor_que) t.start()

2904 次点击
所在节点    Python
1 条回复
zy820
2018-08-03 10:57:35 +08:00
if __name__ == "__main__":
sensor_que = queue.Queue()
sensor_data = {'DeviceId': '', 'AirPressure': 0, 'Humidity': 0, 'Noise': 0, 'Pm25': 0, 'Temperature': 0,
'WindDirection': 0, 'WindSpeed': 0}
# HOST, PORT = "localhost", 9999 #windows
HOST, PORT = "0.0.0.0", 9999 # Linux
server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) # 线程
server.serve_forever()
print('before init_db!')
connect_sql()
init_db()
print('after init_db!')
for i in range(multiprocessing.cpu_count()):
t = threading.Thread(target=getsensor_que)
t.start()

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476512

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX