2010-02-15 27 views
1

所以,我正在編寫一個使用扭曲的web2框架的python web應用程序。有一個我需要使用的庫(SQLAlchemy,具體而言)沒有異步代碼。產生一個線程來處理請求,從數據庫中獲取任何數據,然後返回一個響應會不好?恐怕如果有大量的請求,將會啓動太多的線程,服務器將不堪重負。是否有內置的東西可以防止這種情況發生(例如請求限制)?twisted.web2和spawining線程的同步代碼?

+0

您應該儘量避免使用Twisted Web2,而應使用Twisted Web。 – 2010-02-15 12:59:20

+0

@讓 - 保羅卡爾德隆如何來? – HFLW 2010-02-15 17:21:45

+0

請參閱http://twistedmatrix.com/trac/wiki/TwistedWeb2 – 2010-02-16 00:47:45

回答

0

請參閱the docs,尤其是thread pool,它允許您控制最多有效的線程數。產生一個新的線程每個請求將絕對是一個劣質的想法!

+0

只有使用SQLAlchemy的線程池會更好嗎? – HFLW 2010-02-15 05:50:03

+0

@Pschcf,根據底層數據庫API適配器的線程安全特性,它可能會也可能不值得將一個小線程池專用於數據庫工作(事實上它通過SQLAlchemy或其他ORM並不重要,在性能調整的條款,作爲底層數據庫引擎和適配器的性質)。 – 2010-02-15 05:53:46