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读取word文档的方法
May 09 Python
python实现用于测试网站访问速率的方法
May 26 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python简单I/O操作示例
Mar 18 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
用python获取txt文件中关键字的数量
Dec 24 Python
Python爬取某平台短视频的方法
Feb 08 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
DC动漫人物排行
2020/03/03 欧美动漫
php 三维饼图的实现代码
2008/09/28 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
HTML颜色选择器实现代码
2010/11/23 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
JavaScript中的this机制
2016/01/30 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
jquery延迟对象解析
2016/10/26 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python随机取list中的元素方法
2018/04/08 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python for和else语句趣谈
2019/07/02 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
岗位职责的定义
2013/11/10 职场文书
积极贯彻学习两会精神总结
2014/03/17 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python