python 多进程队列数据处理详解


Posted in Python onDecember 23, 2019

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

# -*- 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获取beautifulphoto随机某图片代码实例
Dec 18 Python
跟老齐学Python之私有函数和专有方法
Oct 24 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
python解析基于xml格式的日志文件
Feb 25 Python
Python正则表达式知识汇总
Sep 22 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
详解Django 时间与时区设置问题
Jul 23 Python
Python简易版图书管理系统
Aug 12 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
Keras loss函数剖析
Jul 06 Python
地图可视化神器kepler.gl python接口的使用方法
Dec 22 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 #Python
python读取ini配置文件过程示范
Dec 23 #Python
python读取Kafka实例
Dec 23 #Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 #Python
kafka监控获取指定topic的消息总量示例
Dec 23 #Python
kafka-python 获取topic lag值方式
Dec 23 #Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 #Python
You might like
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Python3.2模拟实现webqq登录
2016/02/15 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
python字符串的拼接方法总结
2019/11/18 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
Python Selenium截图功能实现代码
2020/04/26 Python
python 通过文件夹导入包的操作
2020/06/01 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
标准毕业生自荐信范文
2013/11/04 职场文书
大学校庆策划书
2014/01/31 职场文书
对公司合理化的建议书
2014/03/12 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
2014年教务工作总结
2014/12/03 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python