Skip to content

Commit 5714cd3

Browse files
committed
fix: handle Run errors, clarify WorkerContext in per-worker override
1 parent 1c8b4b9 commit 5714cd3

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

howto/workers.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,9 @@ Workers support pluggable metrics via the `Metrics` interface. Pass metrics at t
299299
### Built-in Prometheus metrics
300300

301301
```go
302-
workers.Run(ctx, myWorkers, workers.WithMetrics(workers.NewPrometheusMetrics("myapp")))
302+
if err := workers.Run(ctx, myWorkers, workers.WithMetrics(workers.NewPrometheusMetrics("myapp"))); err != nil {
303+
log.Fatal(err)
304+
}
303305
```
304306

305307
This registers the following metrics (auto-registered via `promauto`):
@@ -319,7 +321,7 @@ This registers the following metrics (auto-registered via `promauto`):
319321
### No metrics (default)
320322

321323
```go
322-
workers.Run(ctx, myWorkers) // uses BaseMetrics (no-op) — zero overhead
324+
_ = workers.Run(ctx, myWorkers) // uses BaseMetrics{} (no-op) — zero overhead
323325
```
324326

325327
### Custom metrics
@@ -346,10 +348,15 @@ func (m *myDatadogMetrics) WorkerFailed(name string, err error) {
346348

347349
### Per-worker override
348350

349-
Children inherit metrics from the root by default. Override for specific workers:
351+
Children inherit metrics from the root by default. Override for specific workers via the builder. Use `WorkerContext.Add` inside a manager worker:
350352

351353
```go
352-
ctx.Add(workers.NewWorker("special", fn).WithMetrics(customMetrics))
354+
workers.NewWorker("manager", func(ctx workers.WorkerContext) error {
355+
// This child uses custom metrics instead of the inherited root metrics.
356+
ctx.Add(workers.NewWorker("special", fn).WithMetrics(customMetrics))
357+
<-ctx.Done()
358+
return ctx.Err()
359+
})
353360
```
354361

355362
## ColdBrew Integration (Phase 2)

0 commit comments

Comments
 (0)