python多进程队列中的队列_python 多进程队列数据处理详解
我就废话不多说了,直接上代码吧!
# -*- 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 多进程队列数据处理详解相关推荐
- python列表的内置方法_Python内置方法详解
1. 字符串内置方法详解 为何要有字符串?相对于元组.列表等,对于唯一类型的定义,字符串具有最简单的形式. 字符串往往以变量接收,变量名.可以查看所有的字符串的内置方法,如: 1> count: ...
- python变量类型是动态的_python内存动态分配过程详解
一.前言 大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前.其他语言,想C++和java,允许"随时随地"声明变量, ...
- 用python处理excel的基本语法_Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...
- python开发报表系统详细操作流程_python实现报表自动化详解
本篇文章将介绍: xlwt 常用功能 xlrd 常用功能 xlutils 常用功能 xlwt写Excel时公式的应用 xlwt写入特定目录(路径设置) xlwt Python语言中,写入Excel文件 ...
- python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法
我来教你 js文件怎么通过python访问数据库,希望能够为你带来帮助. 1.如果是要提交表单内容给 服务器的 python 处理,那么只需要在表单 里面的 action 填写服务端的处理路由就可以了 ...
- python爬虫代码实例源码_python爬虫及案例详解(附代码)
安装三大库 1.requests 2.BeautifulSoup 3.lxml 有的网站做了相应的反爬虫,不能用普通方法爬取网站数据. 这里我用python爬取了几个网站的数据,分别存入csv文件,m ...
- dictionary在python中什么意思_Python 字典(Dictionary)操作详解
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. 一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = { ...
- python中iter函数_Python iter()函数用法详解
Python iter()函数用法实例分析 本文实例讲述了Python iter()函数用法.分享给大家供大家参考,具体如下: python中的迭代器用起来非常灵巧,不仅可以迭代序列,也可以迭代表现出 ...
- python中findall函数_Python正则表达式 findall函数详解
在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下:import re str= ...
- python输入文字、成为字典_Python 字典(Dictionary)操作详解
一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} ...
最新文章
- L型四驱越野模型车初期磨合指南
- FuncT,TResult的使用方法(转载)
- Linux /etc/profile文件详解
- 密码学系列之:feistel cipher
- epoll和select的区别
- 线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...
- 从JVM入手,聊聊Java的学习和复习!
- Win10系统鼠标滑轮灵敏度怎么设置
- Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
- 古迪纳夫等3人获得诺贝尔化学奖 确立锂离子电池构成
- [洪流学堂]Hololens开发高级篇4:立体音效(Spatial sound)
- 依赖型的关系建立 - 小技巧
- TortoiseSVN - Download下载 - 1.5.4
- java 中间件介绍_java中间件有哪些?java常用中间件介绍
- 人脸数据库使用授权求助帖
- 银联在线 网关支付 (JAVA版)
- 维修经验:播放器没有声音,但系统有声音
- NBA不可能被破的十个记录
- 【JAVA】360-2021校招笔试-技术综合A卷-0911
- 将电脑文件夹内的文件名批量导入到Excel表格中
热门文章
- 蚂蚁金服OceanBase挑战TPCC丨TPC-C基准测试之链路层优化
- 阿里云物联网平台远程配置功能JAVA 示例参考
- 一键托管,阿里云全链路追踪服务正式商用:成本仅自建1/5或更少
- 云栖专辑 | 阿里开发者们的第12个感悟:多维思考,胜过盲目苦干
- 浅谈数据中台安全体系构建思路
- 【面试妥了】史上最全Spark面试题
- (进阶篇)Redis6.2.0 集群 主从复制_搭建_01
- oracle 存储过程获取当前日期
- java通过HTTPS协议POST提交接收JSON格式数据
- Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号