python 多進(jìn)程隊(duì)列數(shù)據(jù)處理詳解
我就廢話不多說了,直接上代碼吧!
# -*- coding:utf8 -*- import paho.mqtt.client as mqtt from multiprocessing import Process, Queue import time, random, os import camera_person_num MQTTHOST = "172.19.4.4" MQTTPORT = 1883 mqttClient = mqtt.Client() q = Queue() # 連接MQTT服務(wù)器 def on_mqtt_connect(): mqttClient.connect(MQTTHOST, MQTTPORT, 60) mqttClient.loop_start() # 消息處理函數(shù) def on_message_come(lient, userdata, msg): # print(msg.topic + ":" + str(msg.payload.decode("utf-8"))) q.put(msg.payload.decode("utf-8")) # 放入隊(duì)列 print("產(chǎn)生消息", msg.payload.decode("utf-8")) # 消息處理開啟多進(jìn)程 # p = Process(target=talk, args=("/camera/person/num/result", msg.payload.decode("utf-8"))) # p.start() def consumer(q, pid): print("開啟消費(fèi)序列進(jìn)程", pid) while True: msg = q.get() # p = Process(target=talk, args=("/camera/person/num/result", msg, pid)) # p.start() talk("/camera/person/num/result", msg, pid) # subscribe 消息訂閱 def on_subscribe(): mqttClient.subscribe("test123", 1) # 主題為"test" mqttClient.on_message = on_message_come # 消息到來處理函數(shù) # publish 消息發(fā)布 def on_publish(topic, msg, qos): mqttClient.publish(topic, msg, qos); # 多進(jìn)程中發(fā)布消息需要重新初始化mqttClient def talk(topic, msg, pid): cameraPsersonNum = camera_person_num.CameraPsersonNum(msg) t_max, t_mean, t_min = cameraPsersonNum.personNum() # time.sleep(20) print("消費(fèi)消息", pid, msg) mqttClient2 = mqtt.Client() mqttClient2.connect(MQTTHOST, MQTTPORT, 60) mqttClient2.loop_start() mqttClient2.publish(topic, '{"max":' + str(t_max) + ',"mean":' + str(t_mean) + ',"min:"' + t_min + '}', 1) mqttClient2.disconnect() def main(): on_mqtt_connect() on_subscribe() for i in range(1, 3): c1 = Process(target=consumer, args=(q, i)) c1.start() while True: pass if __name__ == '__main__': main()
以上這篇python 多進(jìn)程隊(duì)列數(shù)據(jù)處理詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3+OpenCV2實(shí)現(xiàn)圖像的幾何變換(平移、鏡像、縮放、旋轉(zhuǎn)、仿射)
這篇文章主要介紹了Python3+OpenCV2實(shí)現(xiàn)圖像的幾何變換(平移、鏡像、縮放、旋轉(zhuǎn)、仿射),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05Python畫圖常用代碼總結(jié)大全(20個(gè)畫圖代碼現(xiàn)拿現(xiàn)用)
Python是一種高級編程語言,擁有豐富的圖形庫,可以完成繪制各種類型的圖形任務(wù),下面這篇文章主要給大家介紹了關(guān)于Python畫圖常用代碼的相關(guān)資料,文中介紹的這20個(gè)畫圖代碼可以現(xiàn)拿現(xiàn)用,需要的朋友可以參考下2023-06-06Python自動化測試工具Splinter簡介和使用實(shí)例
這篇文章主要介紹了Python自動化測試工具Splinter簡介和使用實(shí)例,Splinter可以非常棒的模擬瀏覽器的行為,Splinter提供了豐富的API,可以獲取頁面的信息判斷當(dāng)前的行為所產(chǎn)生的結(jié)果2014-05-05Python隨機(jī)生成數(shù)模塊random使用實(shí)例
這篇文章主要介紹了Python隨機(jī)生成數(shù)模塊random使用實(shí)例,本文直接給出示例代碼,需要的朋友可以參考下2015-04-04Python+wxPython實(shí)現(xiàn)將圖片轉(zhuǎn)換為草圖
將照片轉(zhuǎn)換為藝術(shù)風(fēng)格的草圖是一種有趣的方式,可以為您的圖像添加獨(dú)特的效果,本文主要介紹了如何Python和wxPython來實(shí)現(xiàn)這一目標(biāo),需要的可以參考下2023-08-08Python搭建代理IP池實(shí)現(xiàn)接口設(shè)置與整體調(diào)度
這篇文章主要介紹了Python搭建代理IP池實(shí)現(xiàn)接口設(shè)置與整體調(diào)度,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10