我有一个python web工作程序,它可以根据客户端请求流式传输一个大文件。30秒后,Heroku终止连接。我正在使用web.py
并产生新的输出。根据Heroku文档:
Cedar支持HTTP1.1特性,如长轮询和流式响应。应用程序有一个初始的30秒窗口,用一个字节返回客户端进行响应。但是,此后传输的每个字节(从客户端接收或由应用程序发送)都会重置一个滚动的55秒窗口。如果在55秒窗口期间没有发送任何数据,则连接将终止。
我每55秒发送一个字节,但连接仍然终止。
这些是我使用的标题
web.header('Content-type' , 'application/zip')
web.header('Content-Disposition', 'attachment; filename="images.zip"')
我甚至试着添加:
web.header('Transfer-Encoding','chunked')
我做错什么了吗?
问题似乎是由于gunicorn
设置不正确造成的。在Procfile
中延长gunicron
超时成功:
--timeout 300