gpt4 book ai didi

python - django 保留缓存中的文件,删除 view.py 和 view.pyc 文件,仍然运行

转载 作者:太空狗 更新时间:2023-10-29 11:18:48 24 4
gpt4 key购买 nike

我继承了一个项目,该项目是一个运行 python/django 的站点。有一个问题,我认为 Django 正在保留内存缓存中的文件(可能)。

这是一个生产服务器。目前没有DEV环境(这是另外一回事)。

我被迫对实时站点进行请求的紧急错误修复。但是对 .py 文件的任何修改都不会反射(reflect)在网站上。我什至可以完全删除一个 view.py(和 view.pyc),页面继续愉快地加载。我研究了缓存 ( https://docs.djangoproject.com/en/1.3/topics/cache/ ),并添加了适当的虚拟缓存行:

CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
}
}

我试过将缓存强制设置为 1 秒:

CACHE_MIDDLEWARE_KEY_PREFIX = ''
CACHE_MIDDLEWARE_SECONDS = 1
CACHE_MIDDLEWARE_ALIAS = 'default'

重启 nginx 服务没有帮助。我可以运行 /etc/init.d/nginx restart并且原始文件在更改或被完全删除后仍在运行。唯一强制读取新文件并将其重新编译为 pyc 的方法是重新启动整个 VPS 实例!我可以很好地编辑模板,更改会尽快反射(reflect)出来,它唯一的 py 文件不会编译为 pyc。

其他几点:

  1. 我也试过 sudo /etc/init.d/nginx reload , 没有骰子。
  2. 这是一个 AWS EC2 linux VPS,它通过 nginx 而不是 apache 运行 python
  3. 我试过了touch <project>/wsgi.py
  4. Distro 是 CentOS 6.5 版(最终版),所以我也试过了 sudo service nginx reloadsudo service nginx restart .

请问有没有人能解释一下?

编辑:作为测试,我刚刚删除了一个关键的 view.py + view.pyc 文件到网站的一个子部分,15 分钟后,它仍然运行良好。

Edit2:我开始认为我只是想以不同的方式重新启动 nginx。我应该叫什么? Saving Changes To Django with Nginx?

Edit3:基于下面的 IgnacioVazquez-Abrams 帮助,发现它正在通过 ps -ef 进程使用 uwsgi。然后我发现它正在使用 supervisor 作为经理,所有适当的 conf 文件看起来都很好。然后只需重新启动 supervisor 和 BAM 文件即可立即更新。不用说,这扩展了我对 linux + python 的了解。

最佳答案

根据 IgnacioVazquez-Abrams 的帮助,发现 nginx 正在使用 uwsgi 通过 ps -ef 进程为 django 提供服务。在发现它正在使用 uwsgi 并找到 uwsgi conf 文件后,我进行了 ack 搜索以查找有关加载 uwsgi 文件的任何引用,该文件在 supervisor conf 文件中找到。

然后我发现它使用 supervisor 作为管理器,所有适当的 conf 文件看起来都很好。然后只需重新启动 supervisor 即可立即更新 BAM 文件。不用说,这扩展了我对 linux + python 的了解。

不过这引出了一个问题,有没有更简单的方法让文件在指定的时间段或时间后自动重新加载,或者这对提高 python/django/nginx/uwsgi 堆栈的性能至关重要?

关于python - django 保留缓存中的文件,删除 view.py 和 view.pyc 文件,仍然运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27762307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com