我正在阅读这里: https : //code.google.com/p/modwsgi/wiki/ReloadingSourceCode
我们有一个托pipe在大量负载均衡服务器上的python应用程序,有时需要很长时间才能将请求放入负载平衡器中优先级较低的服务器。 这意味着在部署之后,我们可能需要很长的等待时间(同时服务器的wsgi守护进程已经启动)。
当我们实际部署时,我有一个修复,但我们也有服务器arrays上的自动apache(优雅)重新启动。 重启apache跟触摸我的wsgi文件是一样的吗? wsgi是否等待请求进入特定的守护进程进行编译和启动,或者在apache重新启动时自动加载?
使用预加载在进程启动时强制加载应用程序,而不是依赖于对应用程序的第一次请求的延迟加载的默认值。
如果使用足够新的mod_wsgi版本,而不是使用:
WSGIDaemonProcess xxx WSGIProcessGroup xxx WSGIApplicationGroup %{GLOBAL} WSGIScriptAlias / /some/path/wsgi.py
使用:
WSGIDaemonProcess xxx WSGIScriptAlias / /some/path/wsgi.py process-group=xxx application-group=%{GLOBAL}
通过向WSGIScriptAlias提供进程组和应用程序组参数,mod_wsgi将确定应用程序将在最后运行的守护进程组和子解释器上下文,因此它可以在启动时预加载。
如果你使用的是旧版本的mod_wsgi,那么可以使用WSGIImportScript指令来做类似的事情。