目前在做一個多機管理程序。用flask做的web服務器,針對管理請求執行任務然后得到結果返回給前端頁面(可以等)。為了處理方便,沒有使用nginx等web服務器。為了處理方便,同一管理命令,針對每一個主機都從前端發一條命令到后端處理。(涉及到處理結果的顯示問題,不想用其他模式)后端處理就是是ssh登錄到其他主機執行命令(時間很長,但是不消耗flask所在主機資源)我現在要對大約50臺機器發命令,現在每次發命令,flask都只開6個進程或者線程來處理6個請求,等幾十分鐘后再處理后面的請求。無論使用的是默認的多線程模式,還是改為多進程模式,指定進程數為32、64或者更大,都只有6個進程在處理6個請求,處理完成之后才會處理后面的請求(要等很久)。我希望前端發50個請求給后端后,后端能夠開50個進程或者線程去處理。這樣就不需要等這么久了,可不知道怎么處理。追蹤到flask內部進程數設置值processors被賦值給一個對象的max_children屬性就沒下文了,該屬性沒在代碼中發現被使用。
1 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
找到源頭了,不是flask的問題。處理連接時flask用的werkzeug,werkzeug用得socketserver。
socketserver默認同時最多處理5個請求,但werkzeug已經把值改為128了。
之所以每次只處理6個請求,是因為chrome瀏覽器限制每次最多6個請求,同時發許多請求只能發出6個,后面的都會等待。
等待發生在瀏覽器端而不是服務端。
添加回答
舉報
0/150
提交
取消