4

我有一个 django 站点,它演示了工具的使用。我的一个观点将文件作为输入,并通过外部 python 脚本运行一些相当繁重的计算,并将一些输出返回给用户。该工具运行速度足够快,可以在同一请求中返回输出。但是,我想限制对此 URL/视图的并发请求数,以防止服务器拥塞。

关于我将如何做到这一点的任何提示?页面本身非常简单,使用率会很低。

4

2 回答 2

4

假设您正在使用 mod_wsgi,您可以将您的 WSGI 应用程序划分为多个 mod_wsgi 守护进程组,并使用您想要限制的特定 URL 委托给它们自己的 mod_wsgi 守护进程组,并且进程/线程数量较少。

WSGIDaemonProcess myapp processes=2 threads=10
WSGIDaemonProcess myapp-restricted threads=2

WSGIScriptAlias / /some/path/app.wsgi

WSGIProcessGroup myapp

<Location /some/specific/url>
WSGIProcessGroup myapp-restricted
</Location>

请注意,排队访问受限进程中的这 2 个线程的请求仍将消耗主 Apache 服务器子进程中的工作线程。因此,您要确保使用 worker MPM(因此没有 mod_php)并为 MPM 配置足够的备用线程来处理那些备份请求以及正常流量。

于 2010-04-27T10:53:16.840 回答
1

This is really a question about mod_wsgi, assuming you are using that to serve your application from Apache (and if you aren't, you really should be).

The creator of mod_wsgi, Graham Dumpleton, sometimes hangs around these parts, but while waiting for him to turn up, you might look at the superb documentation. Looks like one or other of the arguments to the WSGIDaemonProcess directive might be what you're looking for.

于 2010-04-27T08:23:50.783 回答