<分区>
我有一个应用程序和一个数据库。该应用程序最初是在没有 django 的情况下用 python 编写的。问题似乎是它与数据库建立了太多连接,从而减慢了速度。我想要做的是加载将在 python 字典中使用的任何数据,然后与所有人共享该对象(类似于单调对象)。 django 似乎做的是每次发出新请求时创建一个新的应用程序实例。如何让它共享相同的加载数据?
<分区>
我有一个应用程序和一个数据库。该应用程序最初是在没有 django 的情况下用 python 编写的。问题似乎是它与数据库建立了太多连接,从而减慢了速度。我想要做的是加载将在 python 字典中使用的任何数据,然后与所有人共享该对象(类似于单调对象)。 django 似乎做的是每次发出新请求时创建一个新的应用程序实例。如何让它共享相同的加载数据?
最佳答案
与您的断言相反,Django 不会在每次请求时都重新初始化。实际上,Django 进程会处理许多请求,并且在模块级别定义的任何内容都将在该进程处理的所有请求之间共享。这通常是线程安全错误的原因,但在您的情况下正是您想要的。
当然,一个网站通常同时运行多个进程,并且不可能在它们之间共享对象。此外,由您的服务器决定产生多少进程以及何时回收它们。但是对于您的用例,每个进程一个对象实例化优于每个请求一个。
关于python - 在 Django 用户之间共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28292538/