2016-01-20 38 views
-1

Python腳本完成執行後,它不像JRE/Java(例如Tomcat)那樣應用程序始終駐留在內存中,而是從內存(RAM)中卸載。因此,對於Java Web應用程序,我可以想象連接池如何幫助,但對於Python(甚至是PHP)如何提供幫助?爲什麼SqlAlchemy有連接池?

那麼爲什麼SqlAlchemy提供連接池?

+3

由於python不限於腳本,它是一種可用於創建成熟服務器的實際語言...... – spectras

+0

聽起來好像您還沒有開發複雜的python應用程序。 –

+0

如果有幫助,SQLAlchemy的池本身不會「預熱」。它只會根據請求創建初始連接池。因此,如果您的腳本一次只連接一次,則池中將不會充滿連接,而只會使用您所使用的連接。 – zzzeek

回答

3

你的假設根本不對。是的,如果你運行一個獨立的腳本,它會加載並運行一次,然後從內存中移除 - 這與獨立的Java應用程序一樣。但是沒有一種部署Python Web應用程序的方法可以這樣工作;相反,服務器會啓動一個或多個處理多個Web請求的永久進程。代碼保持駐留。

+0

所以如果我的web服務器是Apache,'httpd'進程是'永久'的,對吧?那是持有連接池的進程? – dharm0us

+0

那麼,Apache通常與mod_wsgi一起使用,並且這是持有連接池的進程,但是。 –

相關問題