大家都在用twisted干啥?

2013-12-22 23:30:03 +08:00
 gcweb
准备用这货写个API server,不知道靠不靠谱
16979 次点击
所在节点    Python
15 条回复
zoowii
2013-12-22 23:32:22 +08:00
感觉好古老的东西啊,
zoowii
2013-12-22 23:33:16 +08:00
和gevent, tornado相比有什么优势吗?
zenliver
2013-12-23 00:13:08 +08:00
twisted make you twisted
zhangxiao
2013-12-23 00:17:45 +08:00
感觉twisted对callback的封装很好,后来用nodejs和scala的finagle感觉都不如twisted那么简练
jjx
2013-12-23 08:35:20 +08:00
twisted 完全是java风格的,那些说python不适合大型项目的真应该看看twsited

现在的twisted, 稳是我对他的最大印象, 其次,pypy下表现很好
jjx
2013-12-23 08:55:00 +08:00
我主要是用在工业仪表数据采集,有使用tcp server/serial/gsm等通讯模式
JohnDeng
2013-12-23 17:19:53 +08:00
twisted来写TCP比较多吧。
xuwenbao
2013-12-24 13:34:51 +08:00
@zenliver 这位同学说的对 ... twisted就是"扭曲"
gcweb
2013-12-24 15:21:54 +08:00
@jjx 听上去很酷的样子啊,能具体介绍下吗?
myrual
2013-12-24 22:56:55 +08:00
如果基于tcp和udp协议设计应用的话非常顺手,基本上网络通讯你需要关心的业务逻辑都在一个类里面写就够了。
缺点是你不能在处理逻辑里面sleep,或者出现阻塞操作,如果要处理延时或者block的操作,要用twisted的高级特性,但是我真的不懂高级特性。

个人建议如果是基于tcp或者udp设计服务,不如试试go,性能很好,代码好写,坑少一些。
jjx
2013-12-25 10:04:23 +08:00
@myrual 几百个客户端也直接写在里面也没有事情, 几k 就要考虑分离进程了, 我用txzmq将实际的逻辑分离到多个woker, 但有时为了部署简单,也有直接在twisted里面跑的.

@gcweb 我做的是一个通用的电压监测仪采集平台, 目前支持10来种国内厂家的电压监测仪. 仪表各种通讯方式都有udp,tcp, gsm,串口,tcp转串口等. 前端是一个pyzmq程序接受web请求, 后端是twisted +txzmq +worker(一表一服务,通常有多个服务跑), 还有一个zmq订阅服务将数据转发到前端, windows 上也有部署, 使用的是iocpreactor, twisted大概是python中少有的支持icop的框架之一了吧. 总之twisted部分就是非常稳定.
F0ur
2013-12-25 10:55:17 +08:00
几年前用过twisted写过棋牌类游戏服务端。。觉得挺好用的
gcweb
2013-12-25 16:09:30 +08:00
@myrual 确实也在考虑用golang
Jordan
2013-12-27 22:22:01 +08:00
很稳定的一个框架,曾在上面写过一堆程序,在WIN下面调试完直接扔在AIX/HP-UX上跑,一点问题都没有。

异步机制基于callback,只要不用callback-chain还好,否则还是自己先看一次deferred的代码,搞懂里面callback-chain的处理机制,会用的安心点。

性能比不上gevent,特别是在高并发下。win下安装倒是方便,官网有编译好的exe包。

如果程序要长期跑在win下,可以考虑。

自从我用了Macbook后,就没碰过twisted,改用gevent,性能更好。
pynix
2018-01-14 00:42:19 +08:00
java 那帮人写出来恶心 python 的吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/94187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX