根据heroku Docs,只要每隔55秒发送一次数据就可以获得长响应。
Heroku支持HTTP 1.1功能,例如长轮询和流式响应。应用程序有一个初始的30秒窗口,以单个字节响应客户端。但是,此后发送的每个字节(从客户端接收或由您的应用程序发送)重置滚动55秒窗口。如果在55秒窗口期间没有发送>数据,则终止连接。
我的工作者应用程序每隔几秒钟返回StreamingHttpResponse
,正好在30秒后被终止
app[web.1]: [2017-03-24 16:26:24 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:24)
app[web.1]: [2017-03-24 16:26:24 +0000] [24] [INFO] Worker exiting (pid: 24)
heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/createRepos" host=managegithub.herokuapp.com request_id=96d4d31e-f9ff-46c0-b727-04ca0dfae2a3 fwd="89.127.160.122" dyno=web.1 connect=6ms service=30690ms status=503 bytes= protocol=https
app[web.1]: [2017-03-24 16:26:25 +0000] [31] [INFO] Booting worker with pid: 31
为什么在每隔几秒钟不断响应数据时终止工作?
答案 0 :(得分:0)
将--timeout 300
添加到proc文件中。