我正在使用flask编写一个opencv(3)python(3.6)服务器。我的get函数看起来像这样
@application.route('/getFinal',methods=['POST'])
def handleFinal():
# do some file creation, reading, saving file(using uuid to segregate from each other) to amazon s3 and opencv logic here
#appending output response to count number of responses occured
with open("test.txt", "a") as myfile:
myfile.write(f'outrequest {requestID}\n')
return json.dumps({'success':True}), 200, {'Content-Type':'application/json'}
并且我在应用程序运行方法中启用了threaded = true
application.run(host ='0.0.0.0',threaded = True)
单个请求耗时2秒。我已将代码部署在AWS Elastic beantalk上。
我目前正在以每秒10个客户端的速度访问服务器,持续2分钟。但是在完成负载测试后,输出的 test.txt 文件显示80行,这意味着仅完成了 80个请求,而不是所需的 1200(10 * 2 * 60)行/请求。我认为这是aws的问题,默认情况下它设置为具有 15个线程和1个进程。我已将配置更改为具有 100个线程,并重新启动了服务器。但是相同的错误仍然存在(再次请求80次)。我尝试了python的inbuild线程模块来查找活动线程的总数
print(threading.active_count())
即使我将线程总数设置为100,它也会输出21。我到底在哪里出错