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 enumerate遍历数组示例应用
Sep 06 Python
使用PDB简单调试Python程序简明指南
Apr 25 Python
对Python捕获控制台输出流的方法详解
Jan 07 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
Python shutil模块用法实例分析
Oct 02 Python
python分布式编程实现过程解析
Nov 08 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
Python对excel的基本操作方法
Feb 18 Python
用python删除文件夹中的重复图片(图片去重)
May 12 Python
Pytorch 如何加速Dataloader提升数据读取速度
May 28 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 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
Protoss兵种对照表
2020/03/14 星际争霸
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHP中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
Layui实现带查询条件的分页
2019/07/27 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python 深度学习中的4种激活函数
2020/09/18 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
旅游专业职业生涯规划范文
2014/01/13 职场文书
关于打架的检讨书
2014/01/17 职场文书
项目战略合作意向书
2015/05/08 职场文书
调解协议书范本
2016/03/21 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python