2
我有一個HTTP服務器,它執行一些IO的東西,然後做一些CPU綁定的東西(PIL),然後用數據(大小爲兆字節左右)回覆。 (a)我的第一個想法是這樣的:一個基於Twisted的服務器和IO進程,以及幾個PIL進程,帶有隊列。扭曲CPU隊列任務的隊列
如果這個體系結構是合理的,那麼可能有一個庫確實做到了這一點:Twisted的多進程隊列。然而,我對Twisted並不是很有經驗,對其社區一無所知,因此我發現的唯一的事情就是ampoule
,對此我找不到任何文檔或描述,這些文檔或描述都不會說服我,它是適合工作的正確工具。 (b)另一個想法是在多個線程中運行多個服務器,IO和CPU都在其中運行。這似乎很愚蠢,因爲CPU的東西會阻止,但也許我不是很瞭解它。
所以,問題:
- 是這些架構是否合理?
- 你將如何實現它(使用
Twisted
+ampoule
還是什麼?) - 對於(一),你會怎麼發從「工人」數據的一大堆服務器線程?或者,也許我可以告訴工作人員直接以某種方式寫入回覆?
- 有多少「工人」是合理的?