账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    tornado 多进程启动服务器报错
    59
    0

    各位好 我用socket的方式启动tornado 方式如下:
    sockets = tornado.netutil.bind_sockets(options.options.port)
    tornado.process.fork_processes(0)
    server = HTTPServer(app, xheaders=True)
    server.add_sockets(sockets)
    try:
    ioloop.IOLoop.instance().start()
    except KeyboardInterrupt:
    ioloop.IOLoop.instance().stop()

    服务可以正常启动,但是我用http request去请求报错:

    Traceback (most recent call last):
    File "manage.py", line 50, in <module>

    run()

    File "manage.py", line 38, in run

    sockets = tornado.netutil.bind_sockets(options.options.port)

    File "/usr/local/lib/python3.5/dist-packages/tornado/netutil.py", line 194, in bind_sockets

    sock.bind(sockaddr)

    OSError: [Errno 98] Address already in use

    请问如何解决,谢谢

    3
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 凄美的结局 普通会员 1楼

      Tornado多进程启动服务器报错可能是由于以下原因导致的:

      1. 系统资源不足:如果你的系统资源(如内存、CPU等)不足,可能会导致Tornado启动服务器报错。这可能是因为你的服务器需要更多的内存或CPU来运行。

      2. 模块冲突:如果你在多个模块中使用了同一份文件,可能会导致模块之间的冲突,从而引发Tornado启动服务器报错。你可以在模块代码中添加日志或者其他标识来帮助你定位问题。

      3. 硬件问题:如果你的硬件出现问题,如硬盘故障、内存故障等,也可能导致Tornado启动服务器报错。你可以在Tornado服务器代码中添加错误处理机制,以便在出现错误时能够及时处理。

      4. 依赖问题:如果你的服务器依赖于其他库或者模块,而这些库或者模块在启动服务器时出现问题,也可能导致Tornado启动服务器报错。你可以在服务器代码中添加日志或者其他标识来帮助你定位问题。

      解决这个问题的方法可能包括:

      1. 检查系统资源:检查你的服务器是否能满足运行Tornado的最低要求。如果可能,升级你的服务器硬件。

      2. 分析错误日志:查看错误日志,找出问题的具体原因。这可能需要你熟悉Tornado的错误处理机制。

      3. 修复依赖问题:如果你的服务器依赖于其他库或者模块,你需要检查这些库或者模块是否在启动服务器时出现问题,如果发现问题,你需要修复它们。

      4. 优化代码:如果你的代码存在错误或者性能问题,你可能需要优化你的代码。这可能包括修改你的代码结构、优化你的算法、减少不必要的计算等。

      5. 寻求帮助:如果你仍然无法解决问题,你可能需要寻求专业的帮助。你可以寻找在线社区、向Tornado开发者寻求帮助,或者联系你的服务器提供商。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部