mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Add max_requests_jitter configuration option.
This commit is contained in:
parent
27c75d5d75
commit
d4e1bfe5bd
@ -628,6 +628,23 @@ class MaxRequests(Setting):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class MaxRequestsJitter(Setting):
|
||||||
|
name = "max_requests_jitter"
|
||||||
|
section = "Worker Processes"
|
||||||
|
cli = ["--max-requests-jitter"]
|
||||||
|
meta = "INT"
|
||||||
|
validator = validate_pos_int
|
||||||
|
type = int
|
||||||
|
default = 0
|
||||||
|
desc = """\
|
||||||
|
The maximum jitter to add to the max-requests setting.
|
||||||
|
|
||||||
|
The jitter causes the restart per worker to be randomized by
|
||||||
|
randint(0, max_requests_jitter). This is intended to stagger worker
|
||||||
|
restarts to avoid all workers restarting at the same time.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
class Timeout(Setting):
|
class Timeout(Setting):
|
||||||
name = "timeout"
|
name = "timeout"
|
||||||
section = "Worker Processes"
|
section = "Worker Processes"
|
||||||
|
|||||||
@ -7,6 +7,7 @@ from datetime import datetime
|
|||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
|
||||||
from gunicorn import util
|
from gunicorn import util
|
||||||
@ -44,7 +45,8 @@ class Worker(object):
|
|||||||
self.aborted = False
|
self.aborted = False
|
||||||
|
|
||||||
self.nr = 0
|
self.nr = 0
|
||||||
self.max_requests = cfg.max_requests or MAXSIZE
|
jitter = randint(0, cfg.max_requests_jitter)
|
||||||
|
self.max_requests = cfg.max_requests + jitter or MAXSIZE
|
||||||
self.alive = True
|
self.alive = True
|
||||||
self.log = log
|
self.log = log
|
||||||
self.tmp = WorkerTmp(cfg)
|
self.tmp = WorkerTmp(cfg)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user