diff --git a/app/router/strategy_leastping.go b/app/router/strategy_leastping.go index ddb5116a..2b9e2789 100644 --- a/app/router/strategy_leastping.go +++ b/app/router/strategy_leastping.go @@ -15,14 +15,17 @@ type LeastPingStrategy struct { } func (l *LeastPingStrategy) InjectContext(ctx context.Context) { - common.Must(core.RequireFeatures(ctx, func(observatory extension.Observatory) error { - l.observatory = observatory - return nil - })) l.ctx = ctx } func (l *LeastPingStrategy) PickOutbound(strings []string) string { + if l.observatory == nil { + common.Must(core.RequireFeatures(l.ctx, func(observatory extension.Observatory) error { + l.observatory = observatory + return nil + })) + } + observeReport, err := l.observatory.GetObservation(l.ctx) if err != nil { newError("cannot get observe report").Base(err).WriteToLog()