Apache/ mod wsgi if __name__ == '__main__' 等效
Apache/ mod wsgi if __name__ == '__main__' equivalent
要为我使用 leveldb(python 数据库),我需要仅在启动服务器时加载数据库,而不是每次用户使用我的网站时加载。
之前我使用 web.py 和 if __name__ == '__main__'
语句来实现这一点。一旦我切换到 Apache,__name__
变量总是 modwsgi_....
.
有人可以为我提供一个可以与 Apache 和 modwsgi 一起使用的替代方案吗?
__name__
的值将采用 _mod_wsgi_?????
的形式,因此使用:
if __name__.startswith('_mod_wsgi_'):
...
更好的是,使用一个 WSGI 脚本文件,与其他仅供 mod_wsgi 使用的文件不同。因此创建一个 app.wsgi
文件,然后从其他地方导入您的应用程序对象。然后您不需要检查并可以在全局范围内进行加载。
只要确保您在任何一种情况下都使用守护程序模式,因为在嵌入式模式下,如果更改修改时间,WSGI 脚本文件在技术上可以在进程的生命周期中加载不止一次。在守护进程模式下,这不会发生,因为更改 WSGI 脚本文件将导致整个进程关闭并重新加载。
顺便说一句,如何知道 mod_wsgi 是否为 运行 记录在:
要为我使用 leveldb(python 数据库),我需要仅在启动服务器时加载数据库,而不是每次用户使用我的网站时加载。
之前我使用 web.py 和 if __name__ == '__main__'
语句来实现这一点。一旦我切换到 Apache,__name__
变量总是 modwsgi_....
.
有人可以为我提供一个可以与 Apache 和 modwsgi 一起使用的替代方案吗?
__name__
的值将采用 _mod_wsgi_?????
的形式,因此使用:
if __name__.startswith('_mod_wsgi_'):
...
更好的是,使用一个 WSGI 脚本文件,与其他仅供 mod_wsgi 使用的文件不同。因此创建一个 app.wsgi
文件,然后从其他地方导入您的应用程序对象。然后您不需要检查并可以在全局范围内进行加载。
只要确保您在任何一种情况下都使用守护程序模式,因为在嵌入式模式下,如果更改修改时间,WSGI 脚本文件在技术上可以在进程的生命周期中加载不止一次。在守护进程模式下,这不会发生,因为更改 WSGI 脚本文件将导致整个进程关闭并重新加载。
顺便说一句,如何知道 mod_wsgi 是否为 运行 记录在: