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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python求众数问题实例
Sep 26 Python
不要用强制方法杀掉python线程
Feb 26 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Python实现八皇后问题示例代码
Dec 09 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Django处理多用户类型的方法介绍
May 18 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
python文件读取失败怎么处理
Jun 23 Python
python动态规划算法实例详解
Nov 22 Python
详解Python requests模块
Jun 21 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
Nodejs学习笔记之测试驱动
2015/04/16 NodeJs
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue中appear的用法
2017/08/17 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
Python中__init__和__new__的区别详解
2014/07/09 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
python pandas模块基础学习详解
2019/07/03 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
基于python实现计算两组数据P值
2020/07/10 Python
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
比利时买床:Beter Bed
2017/12/06 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
某公司面试题
2012/03/05 面试题
《长江之歌》教学反思
2014/04/17 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
高中班级口号
2014/06/09 职场文书
户籍证明格式
2014/09/15 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书