Gunicorn中max_requests和max_requests_jitter之间的机制是什么

rom*_*lym 4 python gevent gunicorn

根据官方指南

\n

https://docs.gunicorn.org/en/latest/settings.html#settings

\n

工作进程在处理完max_requests请求后将重新启动。

\n

但是max_requests_jitter设置后,worker 将在处理完randint(0, max_requests_jitter)请求后重新启动,以错开worker 重新启动以避免所有worker 同时重新启动。

\n

这是否意味着max_requests_jitter设置将被覆盖max_requests并使其无效\xef\xbc\x9f

\n

Mor*_*rtz 5

文档中-

抖动导致每个工作线程的重启被随机化 randint(0, max_requests_jitter)。这样做的目的是错开工作线程重新启动,以避免所有工作线程同时重新启动。

我的理解是,抖动是每个工作人员的随机添加,并且该术语max_requests_jitter应该(尽管不是必需的)小于max_requests

换句话说,worker_1 将在max_requests + j1请求后重新启动,worker_2 将在max_requests + j2请求后重新启动等,其中 的值j1, j2, j3...由参数确定max_requests_jitter