我有一个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')
我做错了吗?
答案 0 :(得分:4)
问题似乎是错误的gunicorn
设置造成的。在gunicron
中延长Procfile
超时可以解决问题:
--timeout 300