Skip to main content

gunicorn 的包装器以正确处理优雅的重启

项目描述

彩虹马鞍

https://travis-ci.org/flupke/rainbow-saddle.svg

Rainbow-saddle 是Gunicorn的一个包装器,用于简化代码重新加载而不丢弃请求。

安装

从 pypi 安装:

$ sudo pip install rainbow-saddle

或来自来源:

$ sudo ./setup.py install

为什么?

有时执行kill -HUP <gunicorn PID>不足以重新加载您的代码。例如,如果您将代码托管在符号链接后面,或者安装中的 .pth 更新为指向不同的目录,则它不会很好地工作。

在这种情况下重新加载代码的正确方法有点复杂:

# Reexec a new master with new workers
/bin/kill -s USR2 `cat "$PID"`
# Graceful stop old workers
/bin/kill -s WINCH `cat "$PIDOLD"`
# Graceful stop old master
/bin/kill -s QUIT `cat "$PIDOLD"`

它还具有更改“主”进程 PID 的缺点,这会使诸如 supervisord 之类的工具感到困惑。

Rainbow-saddle 为您处理所有这些,并且永远不会更改其 PID。重新加载代码变得像再次发送SIGHUP一样简单:

$ rainbow-saddle --pid /tmp/mysite.pid gunicorn_paster development.ini --log-level debug
$ kill -HUP `cat /tmp/mysite.pid`

消息

0.4.0

支持 Gunicorn 使用的新二进制升级方法,从 19.6.0 版本开始。放弃对所有以前版本的 Gunicorn 的支持。感谢 Jacob Magnusson,请参阅 commit benoitc/gunicorn @ 418f140了解更多信息。

0.3.1

感谢 Justin Locsei,对 Python3 的兼容性进行了次要修复。

0.3.0

感谢拉斐尔·弗洛里亚诺·达席尔瓦:

  • 添加–gunicorn-pidfile

  • 修复慢启动应用程序的竞争条件

  • 更新psutil

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Rainbow-saddle-0.4.0.tar.gz (5.2 kB 查看哈希)

已上传 source