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首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Django 视图层(view)的使用
Nov 09 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
对django中foreignkey的简单使用详解
Jul 28 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
jupyter notebook tensorflow打印device信息实例
Apr 20 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
Python数据分析入门之数据读取与存储
May 13 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数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
jQuery实现Select左右复制移动内容
2016/08/05 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
Python编程中对文件和存储器的读写示例
2016/01/25 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python实现学生成绩测评系统
2020/06/22 Python
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
求职简历自荐信
2013/10/20 职场文书
先进个人获奖感言
2014/01/24 职场文书
元宵节主持词
2014/03/25 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
nginx+lua单机上万并发的实现
2021/05/31 Servers