python
文章平均质量分 77
切尔诺贝尔
学海无涯.....做了程序员之后有深刻的体会....
展开
-
mongodb - 分片-实操
文章目录分片:增删查操作python操作新增分片键可能遇到数据全部分布在一个分片上?分片了的某个mongodb数据量突然变多 ?分片:增删查操作查看当前数据库状态:db.colname.stats()可以看到所有索引的状态,可以知道新增分片后对于索引的影响查看分片状态: db.colname.getShardDistribution() #可以查看数据分布Shard shard2 at shard2/10.210.163.122:27030 data : 4.22MiB docs :原创 2021-04-24 11:29:18 · 456 阅读 · 0 评论 -
redis-进程锁-分布式锁
文章目录需求背景解决过程1,通过redis的setnx解决2,通过set命令解决3,通过lua脚本参考链接需求背景服务端用的Python + gunicorn部署维护服务端程序时发现某些任务会多次下发导致原因原有程序单纯flask,所以对于数据库操作用了线程锁,但是加上gunicorn之后就没办法保证一致性了解决过程1,用redis做分布式锁,用setnx和expire,但是setnx(set if key not exist)和expire不是原子操作,所以改用set或者lua脚本原创 2020-08-22 11:57:01 · 443 阅读 · 0 评论 -
peewee mysql驱动无法进行全文索引搜索问题定位解决
文章目录遇到的问题关于peewee全文搜索问题问题触发解决再次遇到问题解决问题1, 尝试自己定义一个方法解决,看到了别人贴的这个方法,但是没有思路2, 在github上找到实现的MATCH方法如下遇到的问题在Join数据的时候,如果对数据直接遍历,那么会丢失join中其他表的数据,如果加上dicts()则不会关于peewee全文搜索问题问题触发做了一个商品搜索页面,由于前任全部是用的m...原创 2020-02-26 17:39:47 · 332 阅读 · 0 评论 -
flask-请求上下文-应用上下文
主体思想通用每个请求会生成一个请求上下文,一个应用上下文(flask0.9之后)对于单应用单请求来说,使用“请求上下文”确实就可以在0.1版本中,current_app是对_request_ctx_stack.top.app(请求上下文)的引用,而在0.9版本中current_app是对_app_ctx_stack.top.app(应用上下文)的引用。请求上下文主要功能:记录请求...原创 2020-02-08 20:20:39 · 193 阅读 · 0 评论 -
flask-gunicorn 报错:Worker failed to boot
报错如下:Traceback (most recent call last): File "/data/server/test_server/venv/lib/python3.6/site-packages/gunicorn/arbiter.py", line 210, in run self.sleep() File "/data/server/test_server/venv...原创 2020-02-08 20:16:42 · 2850 阅读 · 0 评论 -
nginx-下载记录,权限校验
背景公司对完有开放下载服务,需要设置IP白名单,之前通过直接在nginx里面设置ip白名单缺点:1,无法动态修改 2,无法进行日志记录,无法进行复杂的权限校验优点:1,开箱即用改进还是通过nginx,不过是通过nginx x-accel-redirect 参数对文件下载进行处理先通过nginx把下载请求转到web后台后台通过对url里面的参数进行解密,然后进行权限校验,...原创 2020-02-08 20:13:27 · 574 阅读 · 0 评论 -
python 继承引用导致对象无法释放
1,scp传输数据失败涉及知识ssh key设置A访问B机器,需要将A的公钥加到B机器的2,文件数打开过多找到进程Id对于此进程进行lsof -p PID | wc -l 查看打开了多少文件ulimit -a 查看本机限制打开多少文件3,跟进为啥文件数打开过多初步判定是因为自定义了 exit 魔法方法,导致继承父类的self.logger没有被释放然后每次请求会...原创 2020-02-08 20:11:05 · 192 阅读 · 0 评论 -
微信公众号手机端无法打开,但是微信官方调试工具和电脑端可以打开
问题运营反馈测试公众号的推送的内容无法打开解决思路基础数据一致首先通过后台关联到运营同学所收到推送内容的团队,保证双方权限一致访问尝试尝试用手机进行访问推送内容,发现无法访问尝试用微信pc端进行访问,访问正常尝试用微信官方的调试工具进行访问,访问正常定位问题用微信官方调试工具找到页面所涉及的接口,定位 到相应服务,并加上了log再次访问,发现用手机访问时,后端没...原创 2020-02-08 20:08:23 · 3300 阅读 · 0 评论 -
代码整洁之道-coding-Replace Method with Method Object
降低模块复杂度抽取函数:独立业务代码封装为函数,通过函数名诠释代码作用,做到见名知意合并重复:不同条件的分支,有相似的处理,可以提炼出分支以外,或者封装为函数移除控制标记:有控制标签作为条件的,使用break/return取代设计模式:对于同一层的if/else, - switch/case分支过多,可考虑采用状态机或策略模式、表驱动法(Map查找)单一职责:一个函数应该只实现一个功能...原创 2019-11-01 20:01:33 · 104 阅读 · 0 评论 -
flask-context-请求上下文-应用上下文-
主体思想通用每个请求会生成一个请求上下文,一个应用上下文(flask0.9之后)对于单应用单请求来说,使用“请求上下文”确实就可以在0.1版本中,current_app是对_request_ctx_stack.top.app(请求上下文)的引用,而在0.9版本中current_app是对_app_ctx_stack.top.app(应用上下文)的引用。请求上下文主要功能:记录请求...原创 2019-11-01 19:55:57 · 155 阅读 · 0 评论 -
nginx( x-accel-redirect)-下载记录,权限校验,log记录
背景公司对完有开放下载服务,需要设置IP白名单,之前通过直接在nginx里面设置ip白名单缺点:1,无法动态修改 2,无法进行日志记录,无法进行复杂的权限校验优点:1,开箱即用改进还是通过nginx,不过是通过nginx x-accel-redirect 参数对文件下载进行处理先通过nginx把下载请求转到web后台后台通过对url里面的参数进行解密,然后进行权限校验,...原创 2019-11-01 19:53:15 · 674 阅读 · 0 评论 -
elasticsearch-es查询并清理重复数据
需求背景由于数据入库时发生一些错误,导致录入重复数据到es内第一种办法根据单个字段进行查询重复数据POST index/type/_search{ "size": 10, "aggs": { "duplicateCount": { "terms": { "field": "link", "min_doc_count": 10...原创 2019-10-12 20:13:56 · 19121 阅读 · 13 评论 -
流式更新-滑动窗口---python实现
背景需要及时更新数据,且这批数据是需要进行打分计算的,打分规则如下 { "interval": 3, "score": 60 }, { "interval": 6,# 数据超过六小时未更新则降为50分 "score": 60 }, { "inte...原创 2019-10-12 20:09:55 · 1050 阅读 · 0 评论 -
python使用celery 报错 : OSError handle is closed OSError handle is closed
文章目录报错堆栈信息如下定位问题解决方案反思报错堆栈信息如下[2019-09-30 11:19:00,756: ERROR/ForkPoolWorker-85] Thread 'ResultHandler' crashed: OSError('handle is closed',)Traceback (most recent call last): File "/usr/lib/pyth...原创 2019-09-30 15:10:09 · 2182 阅读 · 0 评论 -
python requests源码阅读
各大模块api.py里面定义常用的方法例如: 各种请求方式get,post,post,put…,调用之后他们返回的都是一个Request对象ps: 在get,option方法中都有kwargs.setdefault(‘allow_redirects’, False),这也就意味着如果我们调用方法不传入allow_redirects,那么requests包就会默认帮我们设置为允许重定向单...原创 2019-07-11 21:03:57 · 980 阅读 · 0 评论 -
python基础模块 关于有效利用mysql连接,避免线程池数量过多-mysql线程池PooledDB
起因:1,有一个web服务每一个请求都会进行mysql操作,操作完线程又会断开连接,故想优化一下,减少web连接mysql那一下浪费的时间2, 线程时每个线程占用一个数据库连接(其实中间进行数据库操作有间隔,但是没有释放,所以相当于是一个数据库占用 一个)导致连接数过多经过: 上Google搜索了python的线程池,然后再自己进行了一个简单的装饰器的封装,保证适应以上两种场景体会: 自己...原创 2019-07-10 17:34:45 · 919 阅读 · 2 评论 -
python- logging日志的配置和使用
1,起因感觉应该有很多python小白都是print大法,而比较少用python的官方logging可能有一些同学享用python的logging但是又一时半会配置不好所以就分享出来啦 ~~ 复制粘贴即可使用2, 坑。。。。问题:用的的时间大小隔断模式,但是发现有一些崩溃重启了的任务会发生部分数据丢失…用多线程的时候没有在 logging.getLogger(log_name)这...原创 2019-06-28 19:17:31 · 1360 阅读 · 0 评论 -
python2- 编码类型问题解决大全 codec can't decode bytes in position 398-399: unexpected end of data
将Unicode字符串转换成中文print("\u4E0D\u9650".decode('unicode-escape'))如果是python3i.encode('utf-8').decode('unicode_escape')utf8编码报错UnicodeDecodeError: 'utf8' codec can't decode bytes in position 398-39...原创 2019-06-28 19:16:56 · 1825 阅读 · 0 评论 -
Dockefile 示例及解释
参考链接:https://docs.docker.com/engine/reference/builder/文件地址:https://github.com/threathunterX/nebula/edit/master/DockerfileFROM centos:latestMAINTAINER wangbo@threathunter.cnENV NEBULA_VERSION Ope...转载 2019-07-12 19:33:59 · 1109 阅读 · 0 评论