flask的自带web服务器怎么开很多进程或者线程?

目前在做一个多机管理程序。用flask做的web服务器,针对管理请求执行任务然后得到结果返回给前端页面(可以等)。

为了处理方便,没有使用nginx等web服务器。
为了处理方便,同一管理命令,针对每一个主机都从前端发一条命令到后端处理。(涉及到处理结果的显示问题,不想用其他模式)
后端处理就是是ssh登录到其他主机执行命令(时间很长,但是不消耗flask所在主机资源)

我现在要对大约50台机器发命令,现在每次发命令,flask都只开6个进程或者线程来处理6个请求,等几十分钟后再处理后面的请求。
无论使用的是默认的多线程模式,还是改为多进程模式,指定进程数为32、64或者更大,都只有6个进程在处理6个请求,处理完成之后才会处理后面的请求(要等很久)。

我希望前端发50个请求给后端后,后端能够开50个进程或者线程去处理。这样就不需要等这么久了,可不知道怎么处理。

追踪到flask内部进程数设置值processors被赋值给一个对象的max_children属性就没下文了,该属性没在代码中发现被使用。


翻阅古今
浏览 2291回答 1
1回答

噜噜哒

找到源头了,不是flask的问题。处理连接时flask用的werkzeug,werkzeug用得socketserver。socketserver默认同时最多处理5个请求,但werkzeug已经把值改为128了。之所以每次只处理6个请求,是因为chrome浏览器限制每次最多6个请求,同时发许多请求只能发出6个,后面的都会等待。等待发生在浏览器端而不是服务端。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python