V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tornado Documentation
http://www.v2ex.com/tornado/
Tornado on GitHub
https://github.com/facebook/tornado/
Tornado Gists
http://tornadogists.org/
Emory_M
V2EX  ›  Tornado

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

  •  
  •   Emory_M · 2015-04-11 13:45:36 +08:00 · 5662 次点击
    这是一个创建于 3541 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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   ·   实用小工具   ·   5294 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:26 · PVG 16:26 · LAX 00:26 · JFK 03:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.