我就废话不多说了,直接上代码吧!

# -*- 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服务器

def on_mqtt_connect():

mqttClient.connect(MQTTHOST, MQTTPORT, 60)

mqttClient.loop_start()

# 消息处理函数

def on_message_come(lient, userdata, msg):

# print(msg.topic + ":" + str(msg.payload.decode("utf-8")))

q.put(msg.payload.decode("utf-8")) # 放入队列

print("产生消息", msg.payload.decode("utf-8"))

# 消息处理开启多进程

# p = Process(target=talk, args=("/camera/person/num/result", msg.payload.decode("utf-8")))

# p.start()

def consumer(q, pid):

print("开启消费序列进程", 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 # 消息到来处理函数

# publish 消息发布

def on_publish(topic, msg, qos):

mqttClient.publish(topic, msg, qos);

# 多进程中发布消息需要重新初始化mqttClient

def talk(topic, msg, pid):

cameraPsersonNum = camera_person_num.CameraPsersonNum(msg)

t_max, t_mean, t_min = cameraPsersonNum.personNum()

# time.sleep(20)

print("消费消息", 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 多进程队列数据处理详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持python博客。

python多进程队列中的队列_python 多进程队列数据处理详解相关推荐

  1. python列表的内置方法_Python内置方法详解

    1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...

  2. python变量类型是动态的_python内存动态分配过程详解

    一.前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前.其他语言,想C++和java,允许"随时随地"声明变量, ...

  3. 用python处理excel的基本语法_Python对Excel操作详解

    Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...

  4. python开发报表系统详细操作流程_python实现报表自动化详解

    本篇文章将介绍: xlwt 常用功能 xlrd 常用功能 xlutils 常用功能 xlwt写Excel时公式的应用 xlwt写入特定目录(路径设置) xlwt Python语言中,写入Excel文件 ...

  5. python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法

    我来教你 js文件怎么通过python访问数据库,希望能够为你带来帮助. 1.如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 里面的 action 填写服务端的处理路由就可以了 ...

  6. python爬虫代码实例源码_python爬虫及案例详解(附代码)

    安装三大库 1.requests 2.BeautifulSoup 3.lxml 有的网站做了相应的反爬虫,不能用普通方法爬取网站数据. 这里我用python爬取了几个网站的数据,分别存入csv文件,m ...

  7. dictionary在python中什么意思_Python 字典(Dictionary)操作详解

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = { ...

  8. python中iter函数_Python iter()函数用法详解

    Python iter()函数用法实例分析 本文实例讲述了Python iter()函数用法.分享给大家供大家参考,具体如下: python中的迭代器用起来非常灵巧,不仅可以迭代序列,也可以迭代表现出 ...

  9. python中findall函数_Python正则表达式 findall函数详解

    在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下:import re str= ...

  10. python输入文字、成为字典_Python 字典(Dictionary)操作详解

    一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} ...

最新文章

  1. L型四驱越野模型车初期磨合指南
  2. FuncT,TResult的使用方法(转载)
  3. Linux /etc/profile文件详解
  4. 密码学系列之:feistel cipher
  5. epoll和select的区别
  6. 线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...
  7. 从JVM入手,聊聊Java的学习和复习!
  8. Win10系统鼠标滑轮灵敏度怎么设置
  9. Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
  10. 古迪纳夫等3人获得诺贝尔化学奖 确立锂离子电池构成
  11. [洪流学堂]Hololens开发高级篇4:立体音效(Spatial sound)
  12. 依赖型的关系建立 - 小技巧
  13. TortoiseSVN - Download下载 - 1.5.4
  14. java 中间件介绍_java中间件有哪些?java常用中间件介绍
  15. 人脸数据库使用授权求助帖
  16. 银联在线 网关支付 (JAVA版)
  17. 维修经验:播放器没有声音,但系统有声音
  18. NBA不可能被破的十个记录
  19. 【JAVA】360-2021校招笔试-技术综合A卷-0911
  20. 将电脑文件夹内的文件名批量导入到Excel表格中

热门文章

  1. 蚂蚁金服OceanBase挑战TPCC丨TPC-C基准测试之链路层优化
  2. 阿里云物联网平台远程配置功能JAVA 示例参考
  3. 一键托管,阿里云全链路追踪服务正式商用:成本仅自建1/5或更少
  4. 云栖专辑 | 阿里开发者们的第12个感悟:多维思考,胜过盲目苦干
  5. 浅谈数据中台安全体系构建思路
  6. 【面试妥了】史上最全Spark面试题
  7. (进阶篇)Redis6.2.0 集群 主从复制_搭建_01
  8. oracle 存储过程获取当前日期
  9. java通过HTTPS协议POST提交接收JSON格式数据
  10. Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号