鍍金池/ 問答/Python  Linux/ python flask 在linux后臺運行 從其它電腦調(diào)用該接口時,處理速度

python flask 在linux后臺運行 從其它電腦調(diào)用該接口時,處理速度較慢,請問有什么可以優(yōu)化的方法

from __future__ import unicode_literals

#from flask_restful import reqparse,Api, Resource
from flask_restful import Api
from flask import Flask,request

#from flask import abort
#from flask import make_response,Response  
import json
#import tab
import time
#########test/product==========
import re
#####放在11.41庫
import jieba
import os
import jieba.analyse

app = Flask(__name__)
app.debug = True
app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))
api = Api(app)

test_content = '我是測試文章'
jieba.lcut(test_content.strip(), cut_all = False)

def abspath(filename):
    basedir = '/home/nlp/model/IF'
    return os.path.join(basedir, filename)

print ('IFFile is loading ......')
from sklearn.externals import joblib
IFclf = joblib.load(abspath("model.m"))
IFvec = joblib.load(abspath("vec.m"))
IFtransformer = joblib.load(abspath("tfidf.m"))
IFch2 = joblib.load(abspath("ch2.m"))
print ('IFFile loading successful')

print ('IFkeyword is loading ......')
keywords = "P2P|p2p|比特幣|余額寶|融租租賃|支付機構(gòu)|支付寶|數(shù)字貨幣|保險.*互聯(lián)網(wǎng)|加密貨幣|愉悅資本.*平臺\
|虛擬貨幣|科技金融|金融科技|點牛金融|普惠金融|互金|現(xiàn)金貸|區(qū)塊鏈"
print ('IFkeyword loading successful')

@app.route('/')
def hello_world():  
    return 'hello world'

@app.route('/SVM_TextSort/', methods=['POST'])
def add_task():
    
    time_start=time.time()   
    url = request.json['siteDomain']
    #url = request.form.get('siteDomain')
    lable = ''
    if 'guba' in url:
        lable = ''  
        print ('svm file contain guba')
    else:
        text = request.json['content']
        title = request.json['title']
        #text = request.form.get('content')
        #title = request.form.get('title')
        print ('svm data receive successful')
        
        content = title + text       
        word_cut = jieba.lcut(content.strip(), cut_all = False)       
        news1 = []
        news1.append(' '.join(word_cut))  
        
        print ('===IF judge====')                    
        vec_testif = IFvec.transform(news1)               
        tf_testif = IFtransformer.transform(vec_testif)
        ch2_testif = IFch2.transform(tf_testif)          
        yif = IFclf.predict(ch2_testif)
        print ('svm model judge successful')
        if yif[0] == 0:
            key = re.findall(keywords,title)
            if key:
                lable =  '互聯(lián)網(wǎng)金融'
        else:
            lable = '互聯(lián)網(wǎng)金融'
        print ('====im IF rules====')

    rt = {'SVM_TextSort':lable}
    print ('svm change json successful')
    time_end=time.time()
    print ('svm totally cost',time_end-time_start)
    print (rt)
    return json.dumps(rt)


if __name__ == '__main__':
    app.run(host = '0.0.0.0')

將以上代碼命名為RFIFL.py,通過以下代碼布置在linux后臺中

nohup python3 -u /home/nlp/pyfoot/IF/RFIFL.py >  /home/nlp/pyfoot/IF/RFIFL.log 2>&1 &

通過其它電腦用以下代碼訪問時,整個處理過程較慢,一開始布在本機后臺,通過本機電腦訪問整個處理流程只需0.0002s,布置到linux后臺后,通過其它電腦訪問,處理流程達(dá)到2s左右,效率太慢,請問該如何解決

import requests
user_info ={
    "siteDomain": "letian",
    "title": "ST信通:新增資產(chǎn)凍結(jié)事項",
    "content": '''2018年1月27日公告,公司將截至2018年1月26日所涉及的新增財產(chǎn)凍結(jié)事項披露如下:公司帳戶新增被申請凍結(jié)金額為人民幣5350萬元。截至本公告日,公司被法院申請凍結(jié)的
'''
}
requests.post("http://127.0.0.1:5000/SVM_TextSort/", data=user_info)
回答
編輯回答
奧特蛋

加上 uWSGI 試試。

2018年4月13日 01:34