目标是运行完全独立的流程。 我知道每个WSGI应用程序的子解释器,但是我的知识还不够。 例如,全局变量仍然可以通过不同的过程进行更改,所以我不使用它们。
详细信息:
Server version: Apache/2.4.34
Server MPM: prefork
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess app processes=2 threads=1
WSGIScriptAlias /app /myhost/wsgi-scripts/app.py
Python 3.6.8
wsgi.multiprocess = True
wsgi.multithread = False
该应用程序接受GET参数,并使用带有类的某些包来做一些工作:
from some_package import Myclass
def application(environ, start_response):
query_params = environ['QUERY_STRING']
...
c = Myclass(query_params)
...
return[output]
在请求过程中,无论是同时还是依次进行:
curl http://myhost/app?papam=1
curl http://myhost/app?papam=2
该应用输出不同的结果,
htop
显示了使用两个CPU内核处理这些请求的两个进程。
一切看起来都很好,但是可以确保这两个进程不会影响相同的应用状态吗?