跳转到主要内容

计算准备就绪的gunicorn工作进程的HTTP端点

项目描述

gunicorn_worker_healthcheck

计算准备就绪的gunicorn工作进程的HTTP端点

当使用默认的sync gunicorn工作进程时,使用应用程序自身的HTTP端点(即由与正常应用流量相同的机制,即gunicorn工作进程处理)来检查应用程序是否能够处理流量(例如,在失败时将其从负载均衡旋转中移除)可能导致高负载情况下的负面反馈循环

工作进程可能因应用程序请求而变得过于拥挤,以至于它们无法及时响应健康检查请求。因此,此应用程序被从服务流量中移除,使得为传入流量提供服务的应用程序更少,从而增加了它们也可能会变得拥挤的可能性——重复此过程,直到没有应用程序可用于服务流量。

此软件包提供了一个替代的健康检查端点,该端点a)由独立的线程提供服务,独立于主应用流量b)仅检查应用程序和gunicorn启动过程是否完成(即所有/任何gunicorn工作进程都报告为就绪)。

用法

将此内容放入您的配置文件中(通常为gunicorn.conf.py

import gunicorn_worker_healthcheck

healthcheck_bind = '127.0.0.1:8001'
gunicorn_worker_healthcheck.start(globals())

这将在线程中启动一个HTTP服务器;在请求时,它计算通知已就绪的工作进程数量(使用post_worker_init钩子写入pid文件)。如果所需数量的工作进程已就绪,则返回HTTP 200,否则返回500。

配置

  • healthcheck_bind 监听健康检查请求的主机:端口(默认:None,即禁用健康检查)
  • healthcheck_require_workers 必须就绪的工作进程数量,以便健康检查报告成功(默认:1)
  • healthcheck_directory 存储状态文件的目录,每个工作进程一个(默认:'',即当前目录)
  • healthcheck_filename 状态文件命名格式字符串,必须包含一个用于pid的占位符{}(默认:'%.gunicorn.worker.{}'

gunicorn_worker_healthcheck 更新

1.0.0 (2023-05-19)

  • 初始发布(初始)

项目详情


下载文件

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

源代码分发

gunicorn_worker_healthcheck-1.0.0.tar.gz (4.4 kB 查看哈希值)

上传时间 源代码

构建分发

gunicorn_worker_healthcheck-1.0.0-py3-none-any.whl (5.9 kB 查看哈希值)

上传时间 Python 3

支持者