2013-01-09 35 views

回答

3

有點晚,但無論如何:)

您需要添加到您的Gunicorn配置文件這一點。例如,當您啓動gunicorn_django時,您可以傳遞一個-c--config)參數,該參數採用python文件的路徑。

Gunicorn將使用此文件加載未作爲參數傳遞的配置設置,如工作人員和日誌路徑等等。但是,您還可以包含gunicorn將在進程生命週期的某些點調用的函數。根據Raven的文檔,這是你放置烏鴉裝置的地方。

例如:

$ gunicorn_django -c /path/to/gunicorn_settings.py 

該文件可能包含以下內容:

workers = 2 
bind = 'unix:/tmp/my_project_name.sock' # Binds to a unix socket rather than ip/port 
errorlog = '/path/to/logs/gunicorn.error.log' 

def when_ready(server): 
    from django.core.management import call_command 
    call_command('validate') 

要小心,以確保您的DJANGO_SETTINGS_MODULE正確出口,否則call_command('validate')將拋出一個SystemExit和你的進程將無法開始。

你可以閱讀更多關於Gunicorn配置文件:http://docs.gunicorn.org/en/latest/configure.html

+3

這是真的需要了嗎?我知道烏鴉文件建議添加這個鉤子,但我不明白爲什麼它是必要的。即使我沒有添加這個鉤子,我也沒有任何問題。有一個關於這個https://github.com/getsentry/raven-python/issues/286 –

+0

call_command('validate')的github票據正在拋出一個SystemExit,我怎樣才能導出DJANGO_SETTINGS_MODULE correclty? @ krak3n – rayashi

+0

您需要將其導出爲環境變量。運行Gunicorn時,嘗試運行: gunicorn -b 127.0.0.1:8000 --env DJANGO_SETTINGS_MODULE = path.to.settings 您也可以在gunicorn配置文件中設置環境變量。 – krak3n