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实现简单爬虫功能的示例
Oct 24 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
python 中的int()函数怎么用
Oct 17 Python
Python中enumerate函数代码解析
Oct 31 Python
Python自定义简单图轴简单实例
Jan 08 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
python等差数列求和公式前 100 项的和实例
Feb 25 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
pandas中pd.groupby()的用法详解
Jun 16 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者的疑难问答(1)
2006/10/09 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
基于jquery的cookie的用法
2011/01/10 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
浅谈js的异步执行
2016/10/18 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
python中文编码问题小结
2014/09/28 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
Python中属性和描述符的正确使用
2016/08/23 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python sublime安装及配置过程详解
2020/06/29 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
管理失职检讨书
2014/02/12 职场文书
环境建设实施方案
2014/03/14 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP