Django 并行处理

Django Parallel Processing

我有一个简单的 Django 项目。

每次用户点击主页时,都会执行一些操作,并根据这些操作生成视图。现在的问题是,当用户点击主页时,有时根据网络连接情况,操作需要很长时间。如果在此期间,新用户访问主页,他必须等待前一个用户的请求在页面呈现之前得到服务。

我发现 Celery 用于任务调度和排队。但我想知道 Celery 是否是我 need.I 需要每个用户独立处理他的请求而不是排队的东西。

我的项目是单app项目,一次最多接收100个用户。

谢谢。

如果为了满足请求并生成正确的响应而需要完成漫长的过程,那么您就不能使用 Celery。

Django 附带的调试 Web 服务器是一个多线程单进程服务器,但确实非常有限 and should not be used in production

如果您使用 gunicorn 或其他 wsgi 服务器,您可以 运行 在多个进程中使用您的应用程序,但如果您进行繁重的处理,您将很快达到限制。

我认为解决方案是要么改变你处理东西的方式,要么提前准备,要么服务于请求并在后台进行处理,你可以向用户展示 Please wait...消息,这里可以使用Celery来处理

另一种解决方案是使用基于事件的网络服务器,例如 Twisted or cyclone or others