python flask 在linux后台运行 从其它电脑调用该接口时,处理速度较慢,请问有什么可以优化的方法

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|比特币|余额宝|融租租赁|支付机构|支付宝|数字货币|保险.*互联网|加密货币|愉悦资本.*平台\
|虚拟货币|科技金融|金融科技|点牛金融|普惠金融|互金|现金贷|区块链"
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 =  '互联网金融'
        else:
            lable = '互联网金融'
        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后台后,通过其它电脑访问,处理流程达到2s左右,效率太慢,请问该如何解决

import requests
user_info ={
    "siteDomain": "letian",
    "title": "ST信通:新增资产冻结事项",
    "content": '''2018年1月27日公告,公司将截至2018年1月26日所涉及的新增财产冻结事项披露如下:公司帐户新增被申请冻结金额为人民币5350万元。截至本公告日,公司被法院申请冻结的
'''
}
requests.post("http://127.0.0.1:5000/SVM_TextSort/", data=user_info)
阅读 4.9k
1 个回答

加上 uWSGI 试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题