Целью является запуск полностью изолированных процессов.Я знаю о дополнительных переводчиках для каждого приложения 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
показывает два процесса, которые обрабатываютэти запросы используют два ядра ЦП.
Все выглядит очень хорошо, но можно ли быть уверенным, что эти два процесса не влияют на одно и то же состояние приложения?