mirror of
https://github.com/frappe/gunicorn.git
synced 2026-07-02 10:41:30 +08:00
docs(companion): Document USR2 reexec limitation
Hot reexec runs old and new masters concurrently, so each runs its own companion manager and every companion runs twice -- harmful for singletons like a scheduler. Document the limitation and the SIGHUP alternative. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a0e4806962
commit
910c6ada40
@ -134,3 +134,13 @@ restarts the manager with the reloaded config.
|
|||||||
| `control.py` | Unix socket server and JSON framing |
|
| `control.py` | Unix socket server and JSON framing |
|
||||||
| `ctl.py` | `gunicorn-companion` command-line client |
|
| `ctl.py` | `gunicorn-companion` command-line client |
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
Hot reexec (`SIGUSR2` zero-downtime upgrade) is not supported with
|
||||||
|
companions. During the overlap the old and new masters each run their own
|
||||||
|
companion manager, so every companion runs twice. For singletons such as a
|
||||||
|
scheduler this means duplicate work (e.g. double-fired jobs). Stop and
|
||||||
|
restart the master instead of reexec'ing when companions are configured, or
|
||||||
|
keep singleton companions out of the companion set. A graceful reload
|
||||||
|
(`SIGHUP`) is fine: it restarts the single manager in place.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user