V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lolizeppelin  ›  全部回复第 52 页 / 共 53 页
回复总数  1056
1 ... 44  45  46  47  48  49  50  51  52  53  
2017-08-19 20:14:04 +08:00
回复了 shaodamao 创建的主题 Python 萌新求助,关于 Python 装饰器
装饰器是单纯的套娃语法糖

具体看套的是什么


有的是闭包 有的是描述器


上面那个是闭包

套一层只能传不带参数的函数
套二层能传函数参数
套三层能传入预参数
0v0 不对 已经是长连接池了 只有一个目的地没这问题 233
是哦 你的目的地是域名的最好是
host 用 IP 然后 set 域名头的方式去访问

这样不用折腾 dns
@terrawu

连接池不够报的错是 EmptyPoolError 不是 HttpsConnectionError 不是他的目前的问题
HTTPConnectionPool 维护的是 HTTPConnection,再下面就是 socket 了

所以 init_poolmanager 的时候增加 maxsize 参数就增加了 HTTPConnection 的数量,
conn.urlopen 的时候就是 HTTPConnectionPool.urlopen
HTTPConnectionPool 会从自己的队列里取出一个 HTTPConnection 去访问 url

所以只要你 request 的 session 是同一个(用 session.request )
那么你的请求都是从同一个 HTTPConnectionPool 里出来的,所有 con 都没调用过 close (除非你主动 session.close )
都是长链接的,可以被复用

要不这样你抛开你的框架

直接写个单文 fork 8 进程用 requests 去请求你 b 服务器的一个接口 看看 qps 这样不就知道是不是 requests 的问题了

测玩可以改成协程的试试性能有没有提高
理论上不会那么差啊 池化以后是长链接了 单纯的 http 请求后端没问题的话前端 qps 50 应该不成问题的

等等, 你是单进程的还是多进程的?
详细看了下源码

pool_key = (scheme, host, port)

也就是说默认 requests 的默认的池在你目的地只有一个的时候是无效的

所以一个是直接用 session 做池,还有一个办法是重写 HTTPAdapter

好像 init_poolmanager 的 pool_kwargs 传入 maxsize 就能直接池化单个目的地了!!

我操都封装好了嘛...........
你现在是 a 被访问一次就去 a 就去访问 b 一次?

和数据库用链接池一样 requests 的 session 也池化
一开始就建立一定数量的链接然后维护心跳
不然老是 socket connect 也很耗资源的

简单实现可以炒 py redis 的写法试试
2017-08-17 08:45:22 +08:00
回复了 petelin 创建的主题 Python 有什么好办法约束一个函数的执行时间吗?
哦 重新看了下你说的

用 eventlet 写协程可以做到
因为里面没有真正的 sleep
sleep 都被 hack 成排序调度的位置了

协程本身可以终止
2017-08-17 08:39:50 +08:00
回复了 petelin 创建的主题 Python 有什么好办法约束一个函数的执行时间吗?
sleep 可以同信号抛出异常的
2017-08-15 23:29:14 +08:00
回复了 petelin 创建的主题 Python 有什么好办法约束一个函数的执行时间吗?
循环里设置标记位置,循环外部能控制这个标记位置让循环退出
2017-08-15 23:25:34 +08:00
回复了 Buffer2Disk 创建的主题 Python Python 2.6 升级到 2.7,大家有什么经验没有
用兼容方法写代码, 2.6 2.7 的兼容还是比较简单的
2017-08-03 16:35:12 +08:00
回复了 pppy 创建的主题 Python 标准库中 attrgetter 内部的函数 g 是为了增强可读性吗?
g 是闭包
2017-08-03 11:57:39 +08:00
回复了 SlipStupig 创建的主题 Python Python 调用第三方组件可以一直保持吗?
把 awk 代码做到 Python 里 用 c 调用
2017-07-19 22:37:35 +08:00
回复了 hlz0812 创建的主题 宽带症候群 原来上行带宽给 4M 的运营商并不只有电信
限制上行相当于限制了对点的下行

实际上是为了限制整个网络的速度

想要上下对等请给钱
2017-07-19 22:32:25 +08:00
回复了 DearTanker 创建的主题 服务器 一不小心入了 Gen8 想知道哪家 8G 内存靠谱的。。
别 就随便买个 100 多的二手 最好买 4G*2 的
初学不要去关心 new 之类的黑魔法 先避开

装饰器也尽量避开不要折腾

装饰器只是个套娃语法糖,
具体工作的时候涉及到闭包还有描述器之类的黑魔法

等你比较熟了再回来弄这个
以前赛格宽带可以
一些特定地方的网络服务可以满足
2017-07-18 22:43:25 +08:00
回复了 billion 创建的主题 Python Python 的异步如何应用在普通操作上?
io 异步就用 epoll/select 监控 fd

密集计算中间自己控制放弃 cpu 一般用协程,yeid 和 greenlet 之类

封装来封装去底层最后的实现基本都这样,c 怎么写 python 也怎么写
抄 openstack 的 vnc 服务
1 ... 44  45  46  47  48  49  50  51  52  53  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5869 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 02:23 · PVG 10:23 · LAX 18:23 · JFK 21:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.