Tornado 开发中出错调试如何像 PHP 一样? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Emory_M
V2EX    Tornado

Tornado 开发中出错调试如何像 PHP 一样?

  •  
  •   Emory_M 2015-04-11 13:45:36 +08:00 5988 次点击
    这是一个创建于 3835 天前的主题,其中的信息可能已经有所发展或是发生改变。
    php开发的时候因为CGI管理和php解释器是独立的,所以HTTP服务不会因为错误而挂掉,只要修改好代码刷新页面就行

    但是Tornado或Python Web开发中如果遇到错误进程退出,都需要修改代码后手动重启进程,体验非常不好

    Node.js可以使用cluster来启动子进程管理, 实现“出错-监控代码修改-重启进程”
    比如: https://github.com/DoubleSpout/ClusterPlus

    Tornado的tornado.autoreload模块似乎只能处理import-time发生的语法错误,并不能持续进入wait监控

    请教一下Tornado下的解决思路
    第 1 条附言    2015-04-12 22:10:15 +08:00
    Supervisord 无法捕捉 处于buffer状态的print,而且控制台日志彩色标签也丢失了
    使用subprocess自己写了一个启动脚本,监控子进程的退出并重启,结合tornado 4.1 import-time 错误检测
    完美解决
    11 条回复    2015-04-12 09:25:01 +08:00
    bcxx
        1
    bcxx  
       2015-04-11 13:49:38 +08:00
    一般的 debug mode 不是有 reload 机制的吗?
    futursolo
        2
    futursolo  
       2015-04-11 14:06:38 +08:00   1
    使用Supervisord + debug = True
    4.1已经可以检测到import进来的代码的修改并reload了。
    geew
        3
    geew  
       2015-04-11 15:17:04 +08:00
    一般设置debug=True 可以自动reload 但如果你保存时候的代码本身就是跑不起来的 肯定是不行的撒 那就手动重启一下咯 感觉这种情况出现也不是很多吧
    Emory_M
        4
    Emory_M  
    OP
       2015-04-11 16:34:51 +08:00
    @futursolo Thx,居然忘了用Supervisord!嗯 Supervisord和4.1的import-time容错特性就可以解决了
    @geew 有的时候不多,有的时候非常多,没有用PyCharm写代码伤不起
    geew
        5
    geew  
       2015-04-11 17:10:56 +08:00
    @Emory_M 哈哈 好吧 为啥不用pycharm 神器啊
    Emory_M
        6
    Emory_M  
    OP
       2015-04-11 17:45:17 +08:00
    @geew 感觉启动太慢了,而且习惯用一个Sublime搞定所有了,就是这么倔强
    kslr
        7
    kslr  
       2015-04-11 18:00:23 +08:00 via Android
    做好异常捕捉,就不会退出了
    Emory_M
        8
    Emory_M  
    OP
       2015-04-11 21:04:37 +08:00
    @kslr 如果是语法错误呢?
    kslr
        9
    kslr  
       2015-04-11 21:10:34 +08:00 via Android
    @Emory_M sublime有语法检查
    kslr
        10
    kslr  
       2015-04-11 21:11:52 +08:00 via Android
    @Emory_M 语法都经常输入错,这也太搓了吧
    server
        11
    server  
       2015-04-12 09:25:01 +08:00
    用pycharm 每天也就启动几次; Sublime 自己动手丰衣足食, 顺带熟记方法名词。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2909 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:42 PVG 21:42 LAX 06:42 JFK 09:42
    Do have faith in what you're doing.
    ubao 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