gpt4 book ai didi

python - gunicorn 会导致 exscript/paramiko 出现问题吗?

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

我有一个在 Nginx 和 Gunicorn 后面运行的 Django 项目。其中一个应用程序使用 Exscript 与网络设备交互,而 Exscript 又使用 Paramiko。某些设备在 Gunicorn 后面时无法正常工作。

同样的代码在 django-admin shell 中也能正常工作。如果我启动内置的 django 服务器,它也会工作,但如果我绕过 nginx,并直接连接到 Gunicorn,我仍然会收到错误。

我尝试将功能转移到 celery 任务,它有同样的问题,但仅在 Gunicorn 之后。

我使用 django-extensions 编写了一个脚本,该脚本可在命令行运行,但如果通过子进程调用则会失败。但仅次于 Gunicorn。

出现故障的设备似乎都是 F5 LTM,并且看起来 exscript 对象上的缓冲区正在以某种方式被修改。如果我不得不猜测,我会说 Gunicorn 和 Exscript/Paramiko 以某种方式踩到彼此的内存,或者 Gunicorn 可能正在设置一些 Exscript 正在获取的环境变量。

在任何情况下,我都被彻底难住了,如果有任何关于如何解决这个问题的指导,我将不胜感激。

最佳答案

完全是猜测,但这可能有助于调试。基本上,确保你已经删除了所有输出缓冲,这通常可以隐藏在分层多个大框架时真正发生的事情(就像你在这里做的那样)。

确保禁用 Python 中的所有输出缓冲,包括前台网络服务器进程和任何工作进程(设置 PYTHONUNBUFFERED 是确保没有任何 python 脚本具有缓冲的简单方法,在至少在标准库函数上)。

终端还可以引入缓冲区,使调试异常困难。考虑将 your command 切换为 stdbuf -o0 -e0 your command 以禁用 stdout 和 stderr 上的缓冲区(your command 仍然可以重新启用它们,但大多数程序没有)。

关于python - gunicorn 会导致 exscript/paramiko 出现问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660542/

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