来自Heroku的流式大文件在30秒超时后失败

时间:2013-07-12 07:07:49

标签: python http heroku timeout web.py

我有一个python web worker,可以根据客户端请求流式传输大型文件。 30秒后,Heroku终止连接。我正在使用web.py并产生新的输出。根据Heroku文档:

  

Cedar支持HTTP 1.1功能,例如长轮询和流式响应。应用程序有一个初始的30秒窗口,以单个字节响应客户端。但是,此后发送的每个字节(从客户端接收或由您的应用程序发送)重置滚动55秒窗口。如果在55秒窗口期间没有发送数据,则连接将终止。

我每隔55秒发送超过1个字节,但连接仍然终止。

这些是我正在使用的标题

web.header('Content-type' , 'application/zip')
web.header('Content-Disposition', 'attachment; filename="images.zip"')

我甚至尝试添加:

web.header('Transfer-Encoding','chunked')

我做错了吗?

1 个答案:

答案 0 :(得分:4)

问题似乎是错误的gunicorn设置造成的。在gunicron中延长Procfile超时可以解决问题:

--timeout 300