Python 烧瓶应用程序偶尔会挂起来

Python 烧瓶应用程序偶尔会挂起来,python,flask,Python,Flask,我一直在开发一个Flask应用程序,它使用Twilio处理SMS消息,将它们存储在数据库中,并通过JSONP GET请求提供对前端的访问。我已经使用supervisord对其进行了后台监控,它似乎运行得很好,但每隔几天它就会开始挂起(即所有请求永远挂起或超时),我必须重新启动该过程。(我也试过简单地用nohup运行它,但问题是一样的。)我怀疑sqlite3偶尔会阻塞,但我最近的测试是编写一个不涉及数据库访问的请求方法,这也超时了。我感到难以置信的困惑——希望你们看到过类似的东西,或者知道是什么导

我一直在开发一个Flask应用程序,它使用Twilio处理SMS消息,将它们存储在数据库中,并通过JSONP GET请求提供对前端的访问。我已经使用supervisord对其进行了后台监控,它似乎运行得很好,但每隔几天它就会开始挂起(即所有请求永远挂起或超时),我必须重新启动该过程。(我也试过简单地用nohup运行它,但问题是一样的。)我怀疑sqlite3偶尔会阻塞,但我最近的测试是编写一个不涉及数据库访问的请求方法,这也超时了。我感到难以置信的困惑——希望你们看到过类似的东西,或者知道是什么导致了这种情况

可以找到相关的代码,它目前正在我的VPS上运行(并且在本文中已暂停)

谢谢


更新:您认为这可能是Flask的开发服务器的问题吗?我相信用Tornado(或类似的东西)包装我的应用程序可以解决这个问题,但我也已经在使用开发服务器的情况下运行了很长时间而没有出现问题。

记录在案,这似乎是通过使用Tornado而不是Flask开发服务器运行我的应用程序解决的。一旦我决定这样做,将我的Flask代码包装到Tornado服务器中就非常容易了:如果您发现自己处于同样的情况,请咨询。

您可能会用完打开的文件句柄,特别是如果此代码收到大量请求的话。典型的ulimit是4096。尝试增加这个值,或者-甚至更好-从sqlite中移开并使用文档数据库。您不需要关系开销来存储SMS消息。谢谢您的建议--实际上,我现在几乎没有收到任何请求,我很确定这个问题与DB无关。不过,你关于不需要关系开销的观点是正确的,我肯定会考虑切换到基于文档的数据库。我确实发现,在某些计算机上,Flask dev服务器有时会非常滞后(我想这是因为涉及IPv6的一些问题,尽管我已经不记得了)。我在CherryPy服务器(链接:)上运行我的Flask应用程序的运气确实更好——我希望它只是开发服务器。我用Tornado重新启动了它,希望它能起作用。我也有一些烧瓶挂着/卡住的问题,并移到了Tornado。我仍然有同样的问题…非常感谢你发布这篇文章!龙卷风似乎解决了我的问题。请同时链接到。我的烧瓶应用程序尚未部署,但由于未知原因挂起。嗯,我从昨天起就没有重新启动电脑。无论如何,问题解决了,谢谢。我也有同样的问题,而且似乎也帮我解决了。谢谢