代码如下:
# -*- coding:utf-8 -*-
import flask
import subprocess
app = flask.Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
@app.route("/api/clear",methods=['POST'])
def clear():
domains = flask.request.form
for k in domains:
if domains[k].strip() != '':
#os.system('rm -rf /data/proxy_cache_dir/'+ domains[k])
subprocess.call('rm -rf /data/proxy_cache_dir/' + domains[k], shell=True)
return domains['domain']
@app.route("/apinew/clear",methods=['POST'])
def new_clear():
domains = flask.request.form
for k in domains:
if domains[k].strip() != '':
#os.system('rm -rf /data/proxy_cache_dir/'+ domains[k])
subprocess.call('rm -rf /data/proxy_cache_dir/' + domains[k], shell=True)
return domains['0']
if __name__ == "__main__":
app.run(host='0.0.0.0',port=5000)
同样也是这样一段代码,在之前的一台服务器上一直运行良好。现在百度云服务器上运行,过一段时间就会无法响应,要关掉进程重新运行。 在 subprocess.call 方法之前,用的是 os.system,也会有同样的问题,而且正常运行的时间更短。希望大伙给给建议,应该从哪方面着手解决。
1
wwqgtxx 2017-05-02 10:25:25 +08:00 via iPhone
没有错误日志输出么?多加点 log,多 try except 看看到底那在哪里了
|
2
TheCure 2017-05-02 10:26:29 +08:00
去找百度云, 他们家的服务经常出问题
利益相关: 前百度云员工 23333 |
3
TheCure 2017-05-02 10:33:20 +08:00
好了, 认真回答下,个人猜测, flask 是单线程的, 有可能你去 call 命令的时候 hang 住了就会导致整个 web 服务没法相应.
比如 rm -rf /data/ 这个命令很久都没有返回 如果你把 CDS 目录挂到了 /data 或者你的根目录压根就是远端的分布式存储, 这里是有可能 hang 住的, 因为 IO read only 了. 以上都是扯淡, 用百度云的壮士,祝你好运 |