[bigdata-053] flask开发和高并发部署

Flask的web server,可以以python3 myflask.py的方式运行,但这种方式不能用于生产环境,不稳定,比如说,每隔十几分钟,有一定概率遇到连接超时无返回的情况。


有各种方式部署。比较简单的方式,就是用gevent部署。


1. pip3 install gevent

2. myflask.py如下

#!/usr/bin/env python3
#! -*- coding:utf-8 -*-

from flask import Flask, jsonify
from gevent.wsgi import WSGIServer

app = Flask(__name__)

#这里的json使用中文key
@app.route("/", methods=['GET', 'POST'])
def index():
    return jsonify({'ret':'hi'})

WSGIServer(('0.0.0.0', 8889), app).serve_forever()


3. 测试代码如下:

#!/usr/bin/env python3
#! -*- coding:utf-8 -*-

import urllib
import json
import time

url = 'http://localhost:6666/'

while True:
    t1 = time.time()
    print(t1)
    res = json.loads(urllib.request.urlopen(url, timeout=10).read().decode('utf-8'))
    dt = time.time() - t1
    print("耗时"+"%.2f秒" % dt)
    print(res)
    time.sleep(0.01)

4. 但是,这并不能保证每一次请求都能返回结果。必需设置timeout,失败后要重试。web http服务不是100%就能得到结果的。


你可能感兴趣的:([bigdata-053] flask开发和高并发部署)