我在想是不是应该通过flask来使用asyncio和aiomysql,所以做了一个简单的实验,但是有一点没看懂
我知道 flask 在单线程上运行并顺序处理它。所以在处理一个请求的时候,我明白如果有IO bound,flask就不能再处理另一个请求了,但是结果和我想的不一样。这是什么原因。
from flask import Flask, Response, jsonify
import asyncio
import aiomysql
import pymysql
app = Flask(__name__)
@app.route('/sync2')
def hihi2():
print('IO bound start!')
cur = conn.cursor()
cur.execute('''select Count(*)
from fruit_defect
WHERE date between '2022-11-22' and '2022-11-25'
''')
print('IO Bound finish!')
result = cur.fetchall()
print(result)
cur.close()
return jsonify(result)
@app.route('/sync3')
def hihi3():
print('CPU BOUND start!')
c = 0
for _ in range(1000000):
c += 1
print('CPU bound finish!')
return jsonify(1)