自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 收藏
  • 关注

原创 Ray使用备注

ray用法及注意事项

2023-12-12 14:46:03 481

原创 物联网视频监控服务(一)-硬件选择篇

此为一个微型的计算机,运行linux系统,上面提供各种引脚,用来接入其他硬件,进行供电控制及数据交互;以4B版本的树莓派为例,其包括的硬件功能分布如下Grove系统引用简介:Grove是一个模块化的标准连接器原型系统。Grove采用积木式组装电子技术。与基于跳线或焊接的系统相比,连接,试验和构建更容易,并简化了学习系统;优点如下:不用再使用 焊枪进行电线焊接,改为基于拔插式;不用过于考虑 2个硬件间 的连错线问题,人家提供的每个硬件会告诉用户怎么接线;

2023-03-14 20:51:53 810 3

原创 物联网视频监控服务(二)-硬件编码篇

概述此篇文章主要描述 ESP32-CAM硬件上的软件开发部分;功能点采集视频数据,并通过UDP协议上传到服务器功能;接收emqx的topic消息,动态调整 视频帧 获取及发送频率;WIFI连接成功 通过闪光灯提示;通过watch dog 实现当程序宕机或假死自动重启;使用技术语言:python软件或框架:micropython+umqtt(MQTT协议的实现)IDE(代码编译器): Thonny+Pycharm应用层协议:MQTT传输层协议:TCP,UDP硬件:ESP32-C

2023-03-14 20:50:34 411

原创 物联网视频监控服务(三)-监控服务端 篇

此篇文章主要描述 监控服务端(video_server) 开发部分;

2023-03-14 20:44:58 948 3

原创 物联网视频监控服务(四)-监控客户端篇

此篇文章主要描述 监控客户端(video_client) 开发部分;

2023-03-14 20:41:02 169

原创 物联网视频监控服务 总览

通过esp32-cam硬件+micropython+opencv+golang+emqx实现的 视频监控功能

2023-03-14 20:39:50 242

原创 Go 实现多态和 参数的动态个数及动态类型

go语言利用interface实现 python中的 函数或方法的 动态类型及动态传参个数; 及 鸭子类型

2023-03-09 19:23:33 1116 1

原创 go 切片(slice)原理及用法注意事项

go切片数据结构及 是否扩容在各种情况下的影响

2023-03-01 18:30:17 1007

原创 Go defer用法

主要介绍go语言中defer在不同情况下的执行原理

2023-02-28 19:22:27 547

原创 opentelemetry+python+jaeger链路追踪相关使用备注

opentelemetry+python+jaeger链路追踪相关使用

2022-09-06 17:10:59 3588

原创 Go net/http/pprof 分析内存泄露及解决方法

使用pprof分析解决go语言中内存泄露的过程

2022-09-05 15:41:37 2757

原创 代码开源许可证选择流程图备忘录

代码开源许可证选择流程图

2022-08-26 10:33:03 142

原创 etcd备忘录

etcd分布式锁在python/go的使用

2022-08-25 20:04:26 465

原创 gojieba在linux系统编译及运行问题总结

gojieba在linux系统编译及运行问题总结

2022-07-28 18:22:41 1329

原创 go channel原理及用法

go channel协程的实现原理及功能特点应用

2022-07-08 16:43:29 696

原创 go cron使用及实现原理

go语言中定时任务的使用及实现原理

2022-06-14 16:47:43 934 1

原创 gin-contrib/pprof备忘录

gin中pprof的分析

2022-06-13 17:54:30 440

原创 kong lua 调用插件报错:Resource temporarily unavailable

后端报错内容如下connect() to unix:/usr/local/kong/xxx.socket failed (11: Resource temporarily unavailable)前端报错返回 404错误问题原因unix的socket在大量请求进来时,其缓存队列较小导致 部分请求无法缓存,直接返回错误内容;解决思路修改 unix的socket缓存队列大小即可;解决方法kong.conf 配置文件的 ```lua_socket_pool_size``` 变量 值改

2022-04-20 14:37:28 325

原创 Python Asyncio总结

主要介绍Asyncio源码涉及的相关主要几个类及相关方法;重点为了理解事件循环运行原理;

2021-12-06 10:30:44 500

原创 Python collections.deque使用

底层实现原理:A deque (double-ended queue) is represented internally as a doubly linked list. (Well, a list of arrays rather than objects, for greater efficiency.) Both ends are accessible, but even looking at the middle is slow, and adding to or removing from

2021-11-18 16:47:43 657

原创 WSGI和flask上下文机制

WSGI全称:Python Web Server Gateway Interface(python web服务网关接口)此WSGI接口 有2部分,分别为 server或者gateway端 和application或者framework端;http请求处理过程如下图:server端作用负责接收用户发起的http请求,进行简单处理后,将包装后的请求数据 调用一次application端的服务,处理具体的请求,处理完后再交给server端,封装后再交给用户;flask框架中server端的依赖继承关

2021-11-05 16:17:11 639

原创 Celery连接rabbitmq报Connection reset by peer

问题复现在使用celery + rabbitmq作为broker时,启动一定时间后 会 由于celery和rabbitmq的心跳检测机制 认为连接有问题,先报 如下错误Too many heartbeats missed再过一段时间,由于认为心跳有问题,会断开tcp连接,就会报 如下错误:ConnectionResetError: [Errno 104] Connection reset by peerproject_name | [2021-10-27 12:19:00,125:

2021-11-01 19:13:46 2468 1

原创 celery执行池概览

相关链接:Celery Execution Pools

2021-10-22 17:20:14 2469

原创 Mongo 持久化(durability)机制

Mongo的持久化过程先将内存中的多个写入命令(包括插入,修改操作) 达到一定的时间或空间后,写入到日志系统中的日志文件(硬盘)里, 然后日志文件中的内容 在达到一定时间后,同步到数据文件中,从而保证数据的持久性;也就是 一个插入操作,需要在内存中 同步到硬盘的日志文件中,再同步到数据文件中 共3个过程;其中可能存在的 丢失数据的情况 在 内存中的命令同步到日志文件的过程中; mongo默认每100毫秒或达到规定字节时 同步到日志文件, 也就是 顶多有100毫秒的数据会丢失;Mongo设

2021-10-09 18:09:02 1090

原创 Mongo explain()使用

explain作用在通过mongo语句进行查询时,如果查询速度过慢,可以用此方法 显示 mongo在查询过程中的查询计划,是否使用索引,以及 查询,并返回了多少行 等等信息 帮助开发人员 在进一步优化之前,提供准确的信息;explain方法参数verbosity参数,值如下queryPlanner 或 0 默认值; 返回值只返回queryPlanner和serverInfo executionStats 返回值返回 详细的执行状态相关信息,如 扫描了多少行,耗时多久等等; all...

2021-10-09 14:18:13 975

原创 迭代器模式(Iterator)及代码实现

模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...

2021-08-26 14:31:08 325

原创 基金模拟系统中,账户模块对乐观锁悲观锁的详细设计方案

需求:在不考虑 被黑客篡改db数据的安全性问题下,现需要实时记录 用户 每笔交易变动后 账户金额的变化要求:并发时,不能出现 账户金额记录错误,如 账户金额100元,同时买入2笔订单,每笔20元,则账户金额必须为60元;需求分析: 解决并发情况下,db数据脏读脏写的问题详设方案:表结构设计方案:class AccountAmountModel(): """账户金额表""" __tablename__ = 't_account_amount' id = Colu

2021-08-24 18:28:03 180

原创 flask单个请求中计算密集型的优化过程

被请求接口中的情况如下: 根据用户输入参数, 需要使用pandas和numpy进行大量计算,这些计算中 ,比如 在 范围 1-100之间使用 随机函数 生成 一个随机值,这个随机值 就是一条线上的点; 这个接口 需要 随机100万次 然后把100万个点渲染到前端页面上;分析需求: 因为是随机100万次,每次随机值都放在list中,最后发给前端; 每次计算时 不会影响其他程序;优化思路:可以考虑 把100万次的计算 平均放到 10个进程中;每个进程负责10万次计算; 这样可以缩减10倍时间...

2021-08-11 16:55:18 422

原创 python heapq数据结构

python中堆的使用相关实现原理其实 堆 只是将list中的元素位置进行改变以满足堆的数据结构要求即可;并且每次 增删改 时 都会移动元素位置以保证 满足 堆 特性所以 堆的 数据结构仍然是 list而已;只是每次对 堆的操作 都需要将list作为参数 传入堆的函数中;堆的数据结构要求为: i处的元素总是大于位置i // 2处的元素;注意和下标无关如: 此堆结构: [1.11, 2, 1.5, 3, 8, 5, 4, 6, 7, 11, 9, 10] 则以 第i=6位的数...

2021-08-11 16:43:59 147

原创 Python代码编写优化

在导入方式及 代码运行访问 命名空间中的变量时,先在本地变量寻找 再到全局变量寻找的优化#! /usr/bin/env python# -*- coding: utf-8 -*-import mathimport timeitfrom math import sindef tight_loop_very_slow(iterations): """ 每次循环 要先找全局变量中的math模块,再去 模块中找 sin方法,极慢 """ result = 0...

2021-08-11 16:15:03 125

原创 linux 重启 python后台进程脚本

重启 python后台进程脚本echo "删除旧进程"old_ids=$(ps -ef | grep /home/work/venv/bin/python | grep -v grep | awk '{print $2}')echo $old_idskill $old_idsecho "删除成功"export OLY_CFG=/home/work/config/local_test.yamlecho "启动新进程"nohup /home/work/venv/bin/python /ho.

2021-08-11 15:43:56 961

原创 Spark RDD中依赖关系与阶段划分

依赖关系含义:spark中RDD之间,先执行的叫父RDD,后执行的叫子RDD;那么 父RDD分区中元素流向子分区RDD的方式叫做依赖关系,一般有2种,如下窄依赖: 父RDD每个分区的元素只能只能流向子RDD某一个分区;而 子RDD某个分区元素可以来自多个父RDD分区; 如 map,filter等宽依赖:父RDD每个分区的元素可以流向子RDD多个分区;判断依赖关系方法当某个RDD出现shuffle(洗牌)操作时,基本都是宽依赖;如 groupByKey reduceByKey sortB

2021-08-11 15:33:05 426

原创 PySpark groupBy groupByKey用法

用法groupBy: 每个元素根据用户指定的函数运行结果作为key,然后进行分组;如果需要 自定义分组的key可以使用此方法;groupByKey:rdd每个元素根据第一个值作为key进行分组用法示例# -*- coding: utf-8 -*-"""(C) rgcAll rights reservedcreate time '2021/5/30 21:01'Usage:"""# 构建sparkfrom pyspark.conf import SparkConffrom

2021-08-11 15:32:07 4363

原创 PySpark reduce reduceByKey用法

用法reduce:对rdd内部 元素 进行迭代操作reduce方法 分区内和分区间调用相同的用户给定的函数;先在每个分区内执行完用户给定的函数后,将每个分区的结果通过collect()方法统计到Driver端;然后在Driver端 通过用户给定的函数进行分区间操作;其实:reduce方法调用的元素间的迭代操作就是用的 python自带的 functools reduce方法reduceByKey:先根据key对每个分区内的数据进行分组,然后调用用户指定的函数对每个key的values进行

2021-08-11 15:31:10 5427

原创 使用sed修改docker-compose中docker版本号

# 修改 版本名称# -i:源文件修改# s:替换# 此命令含义为 替换 busy_service/project_name:xxxx 为新版本号- sed -i 's/busy_service\/project_name:[0-9a-z]*/busy_service\/project_name:${INNER_TAG_NAME}/' docker-compose.yml...

2021-08-11 15:30:03 1253

原创 Spark RDD cache persist checkpoint用法及区别

用法cachepersistcheckpoint特点cachepersistcheckpoint区别cachepersistcheckpoint

2021-08-11 15:24:47 384

原创 sqlalchemy 2013 Lost connection to MySQL server 解决方法

报错如下:2013, 'Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)解决方法:sqlalchemy配置中添加如下:# 回收连接app.config["SQLALCHEMY_POOL_RECYCLE"] = 1800# 每次执行sql前 悲观检查db是否可用;虽然资源稍微额外的消耗,但是简单可靠app.config["SQLALCHEMY_ENGINE_OP

2021-08-11 15:22:35 4488

原创 PySpark 累加器使用及自定义累加器

累加器(accumulator)功能实现在Driver端和Executor端共享变量 写的功能实现机制Driver端定义的变量,在Executor端的每个Task都会得到这个变量的副本;在每个Task对自己内部的变量副本值更新完成后,传回给Driver端,然后将每个变量副本的值进行累计操作;触发/生效 时机受惰性求值机制的影响,只有在行动算子执行时 累加器才起作用;使用地方最好只在行动算子中使用,不要在转换算子中使用,因为转换算子可能出现失败时会重试,这时对应的累加器的值也会

2021-06-17 21:28:20 2015 2

原创 PySpark map mapValues用法

用法map: 对rdd每个元素(包括key,value) 进行 数据转换操作,rdd的元素个数不能改变mapValues:对rdd每个元素的values进行 数据转换操作,rdd的元素个数不能改变;其实 每个元素 格式大致为: RDD( (‘key1’,[val1,val2]),(‘key2’,[val11,val21]) );而 mapValues就是 通过一个函数对 每个元素的values作为参数传给函数;如 sum([val1,val2]);所以 mapValues是对每个元素的valu

2021-05-30 20:59:44 4996

原创 PySpark fold foldByKey用法

用法当RDD分区内和分区间算法不同时,使用aggregate aggregateByKey等2个方法;但是当分区内和分区间算法相同时,便可以简化使用fold foldByKey这2个方法;使用示例# -*- coding: utf-8 -*-"""(C) rgcAll rights reservedcreate time '2021/5/26 19:37'Usage:fold 用法foldByKey 用法"""# 构建sparkfrom pyspark.conf import

2021-05-30 17:33:18 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除