2015-10-05 107 views
0

我在http調用之後做了一個很長的過程,並且在響應中收到此錯誤(503)。經過長時間處理後的Heroku HTTP 503響應

我需要增加Dyno的TimeOut,任何人都知道如何?

異常

[router]: at=error code=H12 desc="Request timeout" dyno=web.1 connect=0ms service=30000ms status=503 bytes=0 
+0

你能告訴我們任何代碼嗎? – Patrick

回答

0

我不能增加「Dyno的TimeOut」在Heroku。它是所有人的着名約束之一,並在30秒內由Heroku嚴格設定。您可以在這裏看到詳細信息

我的解決方案是使線程返回進程,我用長進程創建一個線程,並使用進程的索引「運行」,然後檢查它是否完成了請求通過5秒(或類似的東西)

0

您不能增加 「迪諾的超時」 中的Heroku。它是所有人的着名約束之一,並在30秒內由Heroku嚴格設定。您可以看到詳細信息here

+0

和我說的一樣 –

0

您不能增加超時時間,但可以通過設置Transfer-Encoding: chunked標題來保持連接打開。當Heroku的路由器看到這個時,它不會關閉連接。

下面是一個例子項目,正是這麼做的,並且使用的Servlet 3.1,以保持請求線程阻塞: https://github.com/kissaten/slow-service-example

相關的代碼是:

response.addHeader("Transfer-Encoding", "chunked"); 

也有一個很好的斯卡拉/播放例如,如果你是這樣的事情: http://www.jamesward.com/2015/06/02/redirecting-and-chunking-around-herokus-30-second-request-timeout

+0

我喜歡它!這聽起來不錯!如果我可以,我會檢查這一個:) –