首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gunicorn会导致exscript/paramiko的问题吗?

gunicorn会导致exscript/paramiko的问题吗?
EN

Stack Overflow用户
提问于 2014-10-31 02:22:22
回答 1查看 418关注 0票数 10

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

完全相同的代码在django-admin shell中可以很好地工作。如果我启动内置的django服务器,它也会工作,但如果我绕过nginx,直接连接到Gunicorn,我仍然会得到错误。

我试着把这个功能移到一个芹菜任务上,也遇到了同样的问题,但只是在Gunicorn后面。

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

失败的设备似乎都是exscript LTM,而且看起来F5对象上的缓冲区正在以某种方式被修改。如果要我猜的话,我会说Gunicorn和Exscript/Paramiko以某种方式踩在了彼此的内存上,或者Gunicorn正在设置某个Exscript正在拾取的环境变量。

在任何情况下,我都被彻底难住了,我非常感谢任何关于如何解决这个问题的指导。

EN

回答 1

Stack Overflow用户

发布于 2015-04-25 15:28:00

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

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

终端还可以引入缓冲区,这使得调试变得异常困难。考虑将your command切换到stdbuf -o0 -e0 your command,以禁用标准输出和标准错误上的缓冲区(your command仍然可以重新启用它们,但大多数程序不会)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26660542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档