
高性能的python
greens_bird_jj
。。
展开
-
sanic多进程启动代码中禁用耗时多的同步代码
结论:如果代码用有严重耗时的代码,他会堵塞住这四个worker,下四个请求就请求不过来,所以代码中最好也用async/await去兼容异步web框架。结论:因为最新版的flask是默认多线程启动, 每个请求有耗时他都不会堵塞下一个请求,瓶颈就是框架性能以及服务器性能。注意:我们测试的是堵塞,所以用python直接启动flask不影响这个结论。启动用4个worker。原创 2023-06-21 18:13:38 · 420 阅读 · 0 评论 -
psycopg2.pool.PoolError: connection pool exhausted
数据库连接池用完原创 2022-11-08 11:56:56 · 1069 阅读 · 0 评论 -
redis队列实现队列抢资源问题
需求缘由抢资源是为了解决高并发问题。 我为什么选择用redis队列, 因为这样可以直接在内存上筛选完了超过的那部分人,涉及不到数据库的查询, 当然如果有取消的然后放出名额,就需要你自己对这个list进行删除取消的那个人的用户idfrom redis import StrictRedisfrom retry import retrysort_manager = StrictRedis(host="127.0.0.1", port=6379, db=1, password="",原创 2022-02-12 17:39:28 · 533 阅读 · 0 评论 -
协程写入excel
需求是生成带图片的excel, 由于前端是用源生js写的,无法写多个sheetname,参考了import base64import mathimport osimport shutilimport threadpoolimport asynciofrom io import BytesIOfrom PIL import Imageimport xlsxwriter# 存一列中的最大值,最后刷一下COLUMN_DICT = {}async def do_work_one(st原创 2022-01-11 17:32:58 · 330 阅读 · 0 评论 -
redis实现排行榜,解决同分问题
redis排行榜需求如果一个需求是类似王者荣耀的巅峰赛排行榜, 同分的情况下我们如果想让先到同分的那一个排前面怎么办.解决方案我是将获取第二年的一月的时间戳1000000, 然后-去当前时间戳1000000给同分加上小数, 这样就解决了同分的问题上代码:import mathimport timefrom redis import StrictRedisfrom retry import retrysort_manager = StrictRedis(host="127.0.0.1"原创 2022-01-08 17:27:26 · 1564 阅读 · 2 评论