初学 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 的姿势不对?
第一次发帖,这排版怎么搞的...
1
ryd994 2016-06-09 12:28:43 +08:00
httpserver 那是单线程的吧……
用 threadedtcpserver 试试或者自己用 httpserver 和 ThreadingMixIn 继承一个出来 |
2
jamiesun 2016-06-09 17:33:52 +08:00
不是事实 bottle 库,只有一个文件的 web 框架
|
4
LPeJuN6lLsS9 2016-06-11 19:46:28 +08:00
响应请求的时候都做了啥,有没有请求其他什么互联网上的服务?
只想着换多线程而不是找出到底卡在哪儿了真的没问题吗,会不会一段时间后线程越来越多? |