554
}
555
556
>
func (r *registry) refreshNamespaces(ctx context.Context) (err error) {
registry.go
557
>
start := time.Now()
558
>
defer func() {
559
>
if err != nil {
560
metrics.NamespaceRegistryRefreshFailures.With(r.metricsHandler).Record(1)
561
}
562
>
metrics.NamespaceRegistryRefreshLatency.With(r.metricsHandler).Record(time.Since(start))
registry.go
563
}()
564
565
>
request := &persistence.ListNamespacesRequest{
registry.go
566
>
PageSize: CacheRefreshPageSize,
567
>
IncludeDeleted: true,
568
>
}
569
>
var namespacesDb namespace.Namespaces
570
>
namespaceIDsDb := make(map[namespace.ID]struct{})
571
>
572
>
for {
573
>
// TODO: consider adding a timeout and/or retries here - long ListNamespaces
574
>
// calls could delay watch reconnection or block shutdown
575
>
response, err := r.persistence.ListNamespaces(ctx, request)
576
>
if err != nil {
577
return err
578
}
579
>
for _, namespaceDb := range response.Namespaces {
registry.go
580
ns, err := namespace.FromPersistentState(
581
namespaceDb.Namespace,