我在6个Heroku dynos上运行了一个Djano 1.8应用程序。每隔一段时间,一个通常非常快(200毫秒)的请求进来并命中Heroku路由器30秒超时。然后,该dyno超出其他后续请求,有时需要25分钟才能稳定并返回到服务请求而不会超时。
我正在使用带有默认web_concurrency的gunicorn(每个dyno 2个工作者)。我阅读了Heroku关于超时行为here的文章,并考虑在Procfile中向我的gunicorn初创公司添加类似于--outout 20的内容。这似乎是他们推荐的。你认为这会解决问题吗?从查看超时设置的gunicorn documentation开始,它说:
Workers silent for more than this many seconds are killed and restarted.
但是我的工人不是沉默的吗?他们正在尝试处理请求但由于某种原因而挂起并无法处理。此外,当我运行gunicorn -h时,我可以看到超时的默认设置是30.因此,如果不应该在我的应用程序上长时间运行的任务在5,10分钟之前被杀死等等。我是否理解正确?