首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

大家都在用twisted干啥?

  •  
  •   gcweb · 2013-12-22 23:30:03 +08:00 · 15109 次点击
    这是一个创建于 2175 天前的主题,其中的信息可能已经有所发展或是发生改变。
    准备用这货写个API server,不知道靠不靠谱
    15 回复  |  直到 2018-01-14 00:42:19 +08:00
        1
    zoowii   2013-12-22 23:32:22 +08:00
    感觉好古老的东西啊,
        2
    zoowii   2013-12-22 23:33:16 +08:00
    和gevent, tornado相比有什么优势吗?
        3
    zenliver   2013-12-23 00:13:08 +08:00
    twisted make you twisted
        4
    zhangxiao   2013-12-23 00:17:45 +08:00
    感觉twisted对callback的封装很好,后来用nodejs和scala的finagle感觉都不如twisted那么简练
        5
    jjx   2013-12-23 08:35:20 +08:00
    twisted 完全是java风格的,那些说python不适合大型项目的真应该看看twsited

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

    个人建议如果是基于tcp或者udp设计服务,不如试试go,性能很好,代码好写,坑少一些。
        11
    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部分就是非常稳定.
        12
    F0ur   2013-12-25 10:55:17 +08:00
    几年前用过twisted写过棋牌类游戏服务端。。觉得挺好用的
        13
    gcweb   2013-12-25 16:09:30 +08:00
    @myrual 确实也在考虑用golang
        14
    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,性能更好。
        15
    pynix   2018-01-14 00:42:19 +08:00
    java 那帮人写出来恶心 python 的吧?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   894 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 104ms · UTC 20:40 · PVG 04:40 · LAX 12:40 · JFK 15:40
    ♥ Do have faith in what you're doing.