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实现ftp客户端示例分享
Feb 17 Python
跟老齐学Python之编写类之二方法
Oct 11 Python
在Python中使用HTML模版的教程
Apr 29 Python
python避免死锁方法实例分析
Jun 04 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
python有序查找算法 二分法实例解析
Feb 18 Python
Python序列化pickle模块使用详解
Mar 05 Python
Python多线程的退出控制实现
Aug 10 Python
使用gunicorn部署django项目的问题
Dec 30 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 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
德生PL990的分析评价
2021/03/02 无线电
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
劳资专员岗位职责
2013/12/27 职场文书
公司营业员的自我评价
2014/03/04 职场文书
校长创先争优承诺书
2014/08/30 职场文书
行政主管岗位职责
2015/02/03 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
改造DE1103三步曲
2022/04/07 无线电