Mos*_*ted 5 python wsgi web-worker gunicorn web
当其中一名工人无法启动时,我可以告诉 Gunicorn 失败吗?我不希望 Gunicorn 自动为我处理和重新加载工作程序,但我希望它失败,而不是一次又一次地尝试启动工作程序。我应该向主进程或某些信号提出任何特定的异常吗?或者我可以在启动主进程时提供命令行参数?我想在工作人员中实现像这样的逻辑:
if cond():
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)
然后所有的gunicorn都停下来而不重新启动这个工人
所以,解决方案是使用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)
Run Code Online (Sandbox Code Playgroud)
例如,您的工作代码可能是一个简单的 Flask 应用程序(内容为app_module.py:
from flask import Flask
app = Flask()
Run Code Online (Sandbox Code Playgroud)
其他有用的钩子:
就是这样!
| 归档时间: |
|
| 查看次数: |
2842 次 |
| 最近记录: |