亮一个使用tornado做的小项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
isno
V2EX    Tornado

亮一个使用tornado做的小项目

  •  
  •   isno 2013-05-17 11:28:05 +08:00 8456 次点击
    这是一个创建于 4584 天前的主题,其中的信息可能已经有所发展或是发生改变。
    属于Qzone 应用
    刚上线没多久,bug还比较多,正不断完善中
    使用 tornado 3.0.1 + mako + mysql + memcache
    后端 supervisor 管理两个 tornado 进程 (其实一个就可以), 前端使用nginx
    服务器使用的阿里云 内存 1G, 单核

    项目地址 :
    http://rc.qzone.qq.com/801040655?via=DLJ
    18 条回复    2014-09-19 23:38:06 +08:00
    isno
        1
    isno  
    OP
       2013-05-17 11:34:45 +08:00   1
    开发中, 觉得 mongoDB 配合 tornado 才合适,但懒的改了
    下个项目 使用 tornado + mongoDB (已经开始开发了,很快就会完成)

    以前写了很长时间的php, 觉得在开发web项目上,没什么语言能胜过php了
    但熟悉 python后,用 tornado,开发速度也非常快, 不逊与php (使用mongoDB)

    现在自己的业余小项目基本上全都使用 tornado开发... :)
    mozii
        2
    mozii  
       2013-05-17 15:31:40 +08:00   1
    @isno 怎么联系楼主?有事请教。多谢。
    shiny
        3
    shiny  
    PRO
       2013-05-17 15:34:31 +08:00
    我的项目也基本用 Tornado + MongoDB 开发了,但是遇到个问题:内存泄漏…
    lazybios
        4
    lazybios  
       2013-05-17 16:11:14 +08:00
    这应用名字起的亮啊!
    thai9quohs6jae1C
        5
    thai9quohs6jae1C  
       2013-05-17 16:12:14 +08:00
    一年多少钱呢?
    thai9quohs6jae1C
        6
    thai9quohs6jae1C  
       2013-05-17 16:26:02 +08:00
    如果楼主能开源这个项目就更好了。
    zhangxiao
        7
    zhangxiao  
       2013-05-17 16:28:46 +08:00
    去年也用tornado+mongodb做了个小项目,给游戏汉化组用的。感觉mongo还是有些不够的地方,比如无法按照一个数组元素的长度排序,除非做aggregation,但是觉得aggregation做这种事情有点overkill了。

    @shiny 请问内存泄漏是哪个部分?
    shiny
        8
    shiny  
    PRO
       2013-05-17 16:49:07 +08:00
    @zhangxiao
    举例,我的后台值守程序用了 tornado 自带的 HTTPClient,结果内存不断泄露;换了 requests 就好了。其他部分也有泄露的,临时用定时重启解决着后面再看…

    看来以后上线之前得先压一压……

    MongoDB 在某些方面确实不方便。
    coderliss
        9
    coderliss  
       2013-05-17 16:55:15 +08:00
    应用名字亮了,啪啪
    chemzqm
        10
    chemzqm  
       2013-05-18 02:11:08 +08:00
    @coderliss 建议你可以试试 nodejs + mongodb
    @shiny
    @zhangxiao mongodb有些操作可以放到应用层来处理,不要抱着sql那套做法不放,有时候为了程序的简单性多次存取数据库也不会有什么问题。如果没有通过程序设定集合的schema,以后维护会麻烦一些。
    shiny
        11
    shiny  
    PRO
       2013-05-18 10:22:03 +08:00
    @chemzqm 有时候不是程序多次读取就能解决的,典型的比如复杂点的排序。
    有时候为了增加功能只能增加冗余字段。
    yaotian
        12
    yaotian  
       2013-05-18 11:24:48 +08:00
    如何盈利?
    pfipdaniel
        13
    pfipdaniel  
       2013-05-18 11:40:28 +08:00
    这么邪恶的名字怎么想出来的.....
    cloudaice
        14
    cloudaice  
       2013-05-22 18:08:00 +08:00
    你们用tornado做的时候都是用的异步库吗?不然,单个线程阻塞会很严重吧,还有要是把自带的httpclient换成requests的话也会造成阻塞的问题的。
    isno
        15
    isno  
    OP
       2013-05-24 10:26:10 +08:00
    @cloudaice 你把阻塞想的太严重了, 这种流量很小的app,
    只要开两个进程,还有在有网络请求的地方注意下即可(单进程也可满足需求)

    开发的前期尽量不要过度设计
    cloudaice
        16
    cloudaice  
       2013-05-24 18:19:02 +08:00
    @isno 但是我觉得如果能够把它的异步性能全部发挥出来会更好。也体现了它作为web框架的优势。当然考虑异步主要就在数据库访问和网络请求上。
    shiny
        17
    shiny  
    PRO
       2013-05-24 18:35:51 +08:00
    @cloudaice 换成requests是因为后台值守程序,如果是web可以试试 CurlAsyncHTTPClient 也许内存方面控制好点。
    vicwutaojun
        18
    vicwutaojun  
       2014-09-19 23:38:06 +08:00
    @isno 有知道优秀的 python 后端吗?急需人一起做一件很 NB 的事情。weibo.com/vicwutaojun
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3734 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 00:55 PVG 08:55 LAX 16:55 JFK 19:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86