2017-03-24 1 views
1

Laut Heroku Docs, es lange Antworten ermöglicht, solange Daten alle 55 Sekunden gesendet werden.Heroku beendet Arbeiter, der HTTP Chunking (Streaming) ausführt

Heroku unterstützt HTTP 1.1-Funktionen wie Long-Polling und Streaming-Antworten. Eine Anwendung hat ein anfängliches 30-Sekunden-Fenster, um mit einem einzelnen Byte zurück zum Client zu antworten. Jedes danach übertragene Byte (entweder vom Client empfangen oder von Ihrer Anwendung gesendet) setzt jedoch ein rollendes 55-Sekunden-Fenster zurück. Wenn während des 55-Sekunden-Fensters keine> Daten gesendet werden, wird die Verbindung beendet.

My der Arbeiter App, die eine StreamingHttpResponse alle paar Sekunden zurückkehrt, nach genau wird 30sec

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 

beendet Warum beendet der gearbeitet wird, während sie kontinuierlich mit Daten alle paar Sekunden reagiert?

+0

Haben Sie --keep-alive in Ihrem procfile? Zum Beispiel, web: gunicorn info.wsgi - keep-alive 5 –

+0

ja: - keep-alive 300 – Ken

Antwort

0

Hinzufügen von --timeout 300 zum procfile funktioniert.