2016-03-28 4 views
2

meine App lief großartig, aber dann habe ich einige Dinge geändert und jetzt kann es manchmal mehr als 30 Sekunden "denken" bevor ich zurückkomme. Das Problem ist, dass Gunicorn mal-out nach 30 Sekunden:Wie erstelle ich eine Konfigurationsdatei und sage Gunicorn, sie zu benutzen?

[2016-03-28 18:25:52 +0000] [3] [CRITICAL] WORKER TIMEOUT (pid:8) 
2016-03-28T18:25:52.625220+00:00 app[web.1]: 
[2016-03-28 18:25:52 +0000] [8] [INFO] Worker exiting (pid: 8) 

Nun, ich tat etwas Forschung und ich weiß, dass ich eine Konfigurationsdatei für Gunicorn erstellen müssen und einen Befehl setzen Gunicorn das Timeout standardmäßig wie folgt außer Kraft setzen : TIMEOUT=120 Aber wie mache ich das? Ich meine, wie sage ich Gunicorn, dass ich zum Beispiel in gunicorn_config.txt nachsehen und die Gesetze, die ich dafür erstelle, respektiere?

Antwort

5

Config-Dateien können als INI-Datei oder als Python-Datei geschrieben werden. Wenn Sie eine Python-Datei verwenden (das ist, was ich empfehlen würde), setzen diese im Inneren:

timeout = 120 

Oder, wenn Sie eine INI-Datei verwenden möchten:

[server:main] 
timeout = 120 

Dann wenn Sie Gunicorn ausführen, fügen Sie eine -c Option Gunicorn zu sagen, wo Sie Ihre Konfigurationsdatei ist, wie folgt aus:

gunicorn -c config.py ... 

Siehe this file für eine Liste von Optionen, die Sie in Ihrer Konfigurationsdatei verwenden können.


Für Ihr Beispiel benötigen Sie keine Konfigurationsdatei. Führen Sie einfach Gunicorn mit der --timeout Option:

+0

Awesome Antwort. Ich habe versucht die einfache Lösung 'gunicorn --timeout 120' aber es warf mir diesen Fehler' ImportError: Kein Modul namens 'fcntl'' welches nach einigen Recherchen, die ich entdeckte, weil Gunicorn nicht auf Windows läuft ..? Weißt du etwas darüber? Ist das ein Weg um sie herum? –

+0

@KristiferSzabo 'fcntl' ist ein Werkzeug, das Dateiflags setzen kann; Es ist nur Linux, weshalb Sie einen ImportError erhalten. Es scheint nicht so einfach zu sein (http://stackoverflow.com/questions/1422368/fcntl-substitute-on-windows), das zu umgehen, und die meisten Leute scheinen stattdessen die Verwendung einer Linux-VM zu empfehlen. –

+0

@KristiferSzabo Vollständige Windows-Unterstützung scheint geplant zu sein, und mit Kommentaren zu [diesem GitHub-Problem von vor 3 Tagen] (https://github.com/benoitc/gunicorn/issues/524) sieht es aus, als ob eine Windows-Version darin sein könnte Entwicklung. –