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从MP3文件获取id3的方法
Jun 15 Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 Python
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
TensorFlow实现创建分类器
Feb 06 Python
python机器学习之随机森林(七)
Mar 26 Python
python 实现A*算法的示例代码
Aug 13 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
Pytorch实现的手写数字mnist识别功能完整示例
Dec 13 Python
Python 如何创建一个线程池
Jul 28 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 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
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
使用vue.js实现联动效果的示例代码
2017/01/10 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
python中requests小技巧
2017/05/10 Python
python分析作业提交情况
2017/11/22 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
什么是python的id函数
2020/06/11 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
个人自我鉴定怎么写
2013/10/28 职场文书
大三在校生电子商务求职信
2013/10/29 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
杜甫草堂导游词
2015/02/03 职场文书
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL