我正在测试Azure中的Flask API应用程序是否可以处理并发请求。我认为最明显的方法是向一个简单的测试项目中再添加几个实例,并测试快速调用端点是否会创建并发请求,但看起来每个请求都是一次处理一个。我的应用非常简单:
from flask import Flask
import logging, sys
import time
app = Flask(__name__)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)
@app.route('/test', methods=['GET'])
def health_check():
logger.info('Test Start')
time.sleep(10)
logger.info('Test Complete')
return 'Completed'然后我部署到Azure WebApp并将实例设置为2。我通过打开两个Edge选项卡并同时发出请求进行了测试。我希望我的日志看起来像这样:
10:00测试开始10:00测试开始10:10测试完成10:10测试完成
但Azure中的日志显示:
10:00测试开始10:10测试完成10:10测试开始10:20测试完成
我认为增加实例基本上会创建应用程序的副本,Azure会自动管理负载平衡,所以我会认为第二个请求会意识到第一个请求是阻塞的,并转到第二个实例?
https://stackoverflow.com/questions/70100986
复制相似问题