Collapse null pyworker client to a single mode parameterized by --count

Now that the session model means no HTTP connection is held during the
reservation, the dichotomy between "single reserve" and "trapezoid demo"
collapses — both are "open N sessions, each held for H seconds, started
I seconds apart, close." Replace --reserve/--demo/--duration/--plateau
with --count/--hold/--interval. --session-cost becomes --cost.

Client is now 64 lines (down from 120).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rob Ballantyne
2026-05-12 12:18:33 +01:00
parent 913e3a8782
commit a81d3febe7
2 changed files with 41 additions and 96 deletions
+8 -7
View File
@@ -68,17 +68,18 @@ consumer dies, the autoscaler sees the worker as broken.
## Client demo
```bash
# Single reservation
# Single reservation, hold 180s
python -m workers.null.client --endpoint <NAME> --instance alpha
# Staggered three-session trapezoid
python -m workers.null.client --endpoint <NAME> --instance alpha --demo
# Three concurrent reservations, started 30s apart, each held 360s
python -m workers.null.client --endpoint <NAME> --instance alpha --count 3 --hold 360
```
Flags: `--duration` (single), `--interval` and `--plateau` (demo
timing), `--session-cost` (overrides the cost reported at session
create; default 100 = `max_perf`), `--instance` (`prod` | `alpha` |
`candidate` | `local`).
Flags: `--count` (number of concurrent sessions, default 1), `--hold`
(seconds each session is held, default 180), `--interval` (seconds
between starts when `--count > 1`, default 30), `--cost` (cost reported
at session-create, default 100 = `max_perf`), `--instance` (`prod` |
`alpha` | `candidate` | `local`).
## Environment variables