2016-05-24 49 views
1

我可以告訴Gunicorn當其中一名工人未能啓動時失敗嗎?我不希望gunicorn爲我自動處理和重新加載工人,但我希望它不會一次又一次地嘗試啓動工人。我是否應該提出任何特定的例外以掌握過程或某些信號?或者我可以在啓動主進程時提供命令行參數? 我想要實現水木清華像工人這樣的邏輯:Gunicorn不重裝工人

if cond(): 
    sys.exit(1) 

,然後所有的gunicorn停止不重新發動這一個工人

回答

1

因此,解決方案是使用Gunicorn hooks.有很多人,但對於這種特殊情況,您可以使用worker_int鉤子。用法 例子可能是以下(簡化版本,gunicorn app_module:app --config gunicorn_config.py推出),內容的gunicorn_config.py

import sys 

workers = 1 
loglevel = 'debug' 

def worker_int(worker): 
    print('Exit because of worker failure') 
    sys.exit(1) 

你工人的代碼可能是一個簡單的瓶的應用程序,例如(的app_module.py內容:

from flask import Flask 

app = Flask() 

其他有用的鉤子:

  • ON_EXIT - 退出gunic前ORN
  • pre_request - 前一個工作進程請求
  • on_starting - 前主進程初始化

這就是它!

相關問題