2016-01-20 65 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一起使用,并且这是持有连接池的进程,但是。 –