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?
Haben Sie --keep-alive in Ihrem procfile? Zum Beispiel, web: gunicorn info.wsgi - keep-alive 5 –
ja: - keep-alive 300 – Ken