回答

0

首先,10000+個請求似乎有點過分,尤其是對於單個端點。如果你可以解決一個較低的數量,並不介意集中同時請求,芹菜應該是與Django結合的一個很好的解決方案。還有一個叫做Flower的實用工具,可以幫助管理芹菜。另一個不錯的選擇是鉤針(一個扭曲的項目)我以前用它與Flask一起使用,它運行良好。你真正的限制因素將是你的操作系統支持多少打開的文件描述符(即開放式套接字)以及你擁有多少內存。

就異步vs線程而言,這是一個兔子洞,根據你的問題,這是一個高度偏見的兔子洞。大多數人會選擇採用線程化方法,因爲在初始階段開始運行起來要容易一些,並且無論出於何種原因,線程對人類頭腦更有意義(最初)。如果你的函數產生的結果相當快,但異步工作的效果很好,但是如果函數花費太長時間或者開發不當,則會減慢整個應用程序的速度。通過仔細的設計,異步和線程都可以根據自己的需要產生快速結果。然而,我的心態是,你真的需要異步和線程來平衡彼此的利弊。我發現的最佳設計模式是對大部分工作使用async(Twisted),對於花費比阻塞事件循環更長時間並阻塞事件的特定任務,我在線程中執行這些(也由Twisted管理)。最後要說明的是,任何異步或線程化應用程序在設計時都需要非常小心和耐心,因爲就像在現實世界中一樣,同時做多件事情會導致問題。

鏈接