@@ -29,11 +29,23 @@ every handler must follow.
2929Overview
3030========
3131
32+ When a reload is requested (via :program: `traffic_ctl config reload ` or the
33+ :ref: `admin_config_reload ` JSONRPC API), the server does not block the caller. Instead, it:
34+
35+ 1. **Assigns a token ** to the reload — either auto-generated (e.g. ``rldtk-<timestamp> ``) or
36+ user-supplied via ``-t ``.
37+ 2. **Schedules the reload ** on background threads (``ET_TASK ``). Each registered config handler
38+ runs, reports its status (``in_progress `` → ``success `` or ``fail ``), and results are
39+ aggregated into a task tree.
40+ 3. **Returns the token ** immediately so the caller can track progress via
41+ :option: `traffic_ctl config status ` or :ref: `get_reload_config_status `.
42+
43+ The **token ** is the unique identifier for a reload operation — it is the handle used to monitor
44+ progress, query final status, and retrieve per-handler logs.
45+
3246``ConfigRegistry `` is a centralized singleton that manages all configuration files, their reload
33- handlers, trigger records, and file dependencies. When a reload is requested (via
34- :program: `traffic_ctl ` or the JSONRPC API — see :ref: `admin_config_reload ` and
35- :ref: `get_reload_config_status `), it coordinates execution, tracks progress per handler,
36- and records the result in a queryable history.
47+ handlers, trigger records, and file dependencies. It coordinates execution, tracks progress per
48+ handler, and records the result in a queryable history.
3749
3850Key capabilities:
3951
@@ -115,6 +127,14 @@ dependencies.
115127 "proxy.config.ssl.client.cert.filename",
116128 "proxy.config.ssl.server.session_ticket.enable"});
117129
130+ .. note ::
131+
132+ When a config key has multiple trigger records, a change to **any ** of them invokes the
133+ handler **once ** per reload cycle — not once per record. The framework deduplicates
134+ internally: the first trigger creates a subtask for the config key; subsequent triggers
135+ for the same key in the same cycle are skipped. Handlers do not need to guard against
136+ duplicate invocations.
137+
118138
119139register_static_file
120140--------------------
0 commit comments