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 09 Python
Python multiprocessing模块中的Pipe管道使用实例
Apr 11 Python
Python实现高效求解素数代码实例
Jun 30 Python
python实现mysql的单引号字符串过滤方法
Nov 14 Python
使用Python进行目录的对比方法
Nov 01 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
int在python中的含义以及用法
Jun 27 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
PyTorch笔记之scatter()函数的使用
Feb 12 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
关于python中导入文件到list的问题
Oct 31 Python
Python try except else使用详解
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
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
如何使用Strace调试工具
2013/06/03 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
Javascript Math对象
2009/08/13 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
2013/06/13 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
谈谈python中GUI的选择
2018/03/01 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
催款函范本大全
2015/06/24 职场文书