V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
icaics
V2EX  ›  Python

请教一个 Python 做服务器接口的问题

  •  
  •   icaics · 2016-06-09 10:44:19 +08:00 · 2938 次点击
    这是一个创建于 3123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初学 Python ,想做个接口玩玩

    用的是 BaseHTTPRequestHandler 类, 里面有 do_get 方法, 启动的时候用: httpd = HTTPServer(('', 8082), MyHttpHandler) httpd.serve_forever() 保持一直运行。

    部署到服务器上, CentOS 的系统,然后开 screen 运行 .py 文件, 然后 Detached 这个 Screen 让他在后台运行。

    一般开始一段时间都能响应请求, 但是一般一天以后我再发请求,就没有响应了,一直等待,然后就超时了, 看样子是接口没有响应这个请求,网络应该是没问题的。

    返回后台的 screen 看打印信息,每个请求我都会 print 一下, 会卡在某一个请求,然后按 Ctrl + C ,不会马上终止, 而是 screen 更新到最新的那个请求 print 的信息, (有点程序挂起了,然后通过 Ctrl + C 重新唤醒的感觉) 然后再按 Ctrl +C ,才会出现 keyboard 终止程序那个提示,

    按说我返回 screen 然后 Ctrl + C ,应该立马结束程序才对, 这里第一次会更新 screen 显示的内容,第二次才结束运行。

    想知道是我 Python 的代码有问题导致卡住了, 比如同时请求次数太多(并发不会很高,一般也就 100 以内)导致卡死, 或者说代码逻辑有问题, 还是使用 Screen 的姿势不对?

    第一次发帖,这排版怎么搞的...

    5 条回复    2016-06-20 16:12:49 +08:00
    ryd994
        1
    ryd994  
       2016-06-09 12:28:43 +08:00
    httpserver 那是单线程的吧……
    用 threadedtcpserver 试试或者自己用 httpserver 和 ThreadingMixIn 继承一个出来
    jamiesun
        2
    jamiesun  
       2016-06-09 17:33:52 +08:00
    不是事实 bottle 库,只有一个文件的 web 框架
    icaics
        3
    icaics  
    OP
       2016-06-09 20:23:47 +08:00
    @ryd994 感谢
    LPeJuN6lLsS9
        4
    LPeJuN6lLsS9  
       2016-06-11 19:46:28 +08:00
    响应请求的时候都做了啥,有没有请求其他什么互联网上的服务?

    只想着换多线程而不是找出到底卡在哪儿了真的没问题吗,会不会一段时间后线程越来越多?
    icaics
        5
    icaics  
    OP
       2016-06-20 16:12:49 +08:00
    @hantsuki 感谢回复,失去响应的问题肯定要查,我已经用 ThreadingMixIn 先搞成多线程了,当时比较急,问题最后肯定要修复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:59 · PVG 22:59 · LAX 06:59 · JFK 09:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.