2017-01-01 21 views
0

在我的Django项目中,我编写了一个中间件,为每个应用程序用户执行操作。为中间件内的Django设置模块设置值时的高响应时间

我注意到,响应时间达气球如果我写的中间件模块的开始以下:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE","myproject.settings") 

这是关于10倍的如果我忽略这些行。作为初学者,我试图澄清为什么各个响应时间之间存在如此大的差异。专家可以解释吗?你之前看过类似的东西吗?


p.s.我已经知道为什么我不应该为中间件内部的Django设置修改环境变量,所以不要担心。

回答

1

原因将可能必须做一些与Django重新加载您的设置配置为每个请求,而不是每个服务器线程/进程(因此,也重新实例化/连接到您的数据库,缓存等)。您将需要通过分析来确认这一点。此行为也很可能取决于您正在运行的应用程序服务器。

如果您真的想要对您的设置进行此级别的控制,则可以将此行添加到manage.py,wsgi.py或用于启动应用程序服务器的任何文件/脚本,这样更容易。

P.S.如果你已经知道你不应该这样做,你为什么这样做?

+0

我最近发现,所以排除它从我的中间件。然后我注意到它导致整个服务器响应时间减少,因此我的问题。附:我用nginx作为反向代理运行gunicorn。 –