我有一个python Web应用程序,我在apache中配置为:
WSGIScriptAlias / firetalk / scripts / firetalkServer2
当我使用XMLHttpRequest从javascript访问它时,WSGI / Apache最终会启动多个实例,这会破坏我想要完成的任务。
那么,有没有办法将WSGI / Apache限制为指定python脚本的单个实例?
谢谢。
答案 0 :(得分:2)
将WSGI应用程序置于守护进程模式并告诉它使用单个进程。请注意,这可能会对性能产生不利影响。
答案 1 :(得分:1)
这更能回应对其他答案的评论所需要的资格。
WSGIDaemonProcess firetalk # Uses default of single process and 15 threads.
WSGIDaemonProcess django processes=5 threads=3
WSGIScriptAlias /firetalk /scripts/firetalkServer2 \
process-group=firetalk application-group=%{GLOBAL}
WSGIScriptAlias / /scripts/djangoServer \
process-group=django application-group=%{GLOBAL}
firetalk应用程序将使用15个线程进入单个进程。
Django应用程序将转到多个进程。
需要mod_wsgi 3.0或更高版本作为使用WSGIScriptAlias的进程组/应用程序组选项。使用选项意味着在进程启动时预加载了WSGI脚本。
或者可以这样做:
WSGIDaemonProcess firetalk # Uses default of single process and 15 threads.
WSGIDaemonProcess other processes=5 threads=3
WSGIScriptAlias /firetalk /scripts/firetalkServer2
<Location /firetalk>
WSGIProcessGroup firetalk
WSGIApplicationGroup %{GLOBAL}
</Location>
WSGIScriptAlias / /scripts/djangoServer
WSGIProcessGroup other
firetalk应用程序将使用15个线程进入单个进程。
其他应用程序分布在多个进程中,每个进程都在这些进程的不同子解释器中。
WSGI脚本在第一次请求时延迟加载。