首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gunicorn+eventlet超时

Gunicorn+eventlet超时
EN

Stack Overflow用户
提问于 2013-03-14 06:54:15
回答 1查看 1.4K关注 0票数 2

我尝试使用eventlet worker (django应用程序)运行gunicorn:

代码语言:javascript
运行
复制
python manage.py run_gunicorn -k eventlet -t 5

如果我有两个不好的观点:

代码语言:javascript
运行
复制
def view1(request):
    while 1:
        time.sleep(0.001) #same as eventlet.sleep
    return HttpResponse('ok')

def view2(request):
    while 1:
        pass
    return HttpResponse('ok')

选项超时( -t )只对view2有意义(因为worker挂起,并且gunicorn可以理解它)。但是gunicorn不能处理坏的view2。

在实际情况中,我们似乎有一些无限循环,里面有time.sleep()或其他猴子打补丁的方法,一段时间后,我们的应用程序不会挂起,但会有许多无限的绿色线程,并开始缓慢地工作。

我的问题是,我如何设置gunicorn,使其能够了解view1的问题并重新启动worker。

EN

回答 1

Stack Overflow用户

发布于 2013-03-14 16:41:11

是否要限制执行任何请求的最长时间?这是个好主意。从2013-02年度开始,Gunicorn不支持这种开箱即用的方式。

您可以使用eventlet.Timeout来实现它。根据你是想要快速超时还是想要分享,你可以只在你的应用程序中添加超时,或者将其作为Gunicorn的一个功能。他们的code很容易理解。

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

https://stackoverflow.com/questions/15398092

复制
相关文章

相似问题

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