gunicorn会引起exscript/paramiko的问题吗?

2024-06-24 12:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在django管理shell中,同样的代码也可以正常工作。 如果我启动内置的django服务器,它也可以工作,但是如果我绕过nginx,直接连接到Gunicorn,我仍然会得到错误。在

我试着把这个功能移到一个芹菜任务中,它也有同样的问题,但只是在Gunicorn之后。在

我用django扩展编写了一个脚本,它可以从命令行工作,但是如果通过子进程调用,则会失败。但只在古尼康后面。在

所有出现故障的设备似乎都是F5 ltm,而且exscript对象上的缓冲区似乎正在以某种方式被修改。如果非要我猜的话,我会说Gunicorn和Exscript/Paramiko在某种程度上踩到了对方的内存,或者Gunicorn正在设置Exscript正在使用的一些环境变量。在

不管怎样,我完全被难住了,如果你能指导我如何解决这个问题,我将不胜感激。在


Tags: 项目django代码服务器应用程序paramiko错误nginx
1条回答
网友
1楼 · 发布于 2024-06-24 12:35:57

完全是猜测,但这可能对调试有帮助。基本上,确保删除了所有的输出缓冲,这通常会隐藏分层多个大型框架时实际发生的事情(就像您在这里所做的那样)。在

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

终端还可以引入缓冲区,使调试异常困难。考虑将your command切换到{},以禁用stdout和stderr上的缓冲区(your command仍然可以重新启用它们,但大多数程序不会)。在

相关问题 更多 >