37
func newPartitionCache(
38
metricsHandler metrics.Handler,
40
>
return &partitionCache{
41
>
metricsHandler: metricsHandler,
42
>
}
43
>
}
44
46
>
for i := range c.shards {
47
>
c.shards[i].rotate()
48
>
}
49
>
c.rotate = goro.NewHandle(context.Background()).Go(func(ctx context.Context) error {
50
>
t := time.NewTicker(partitionCacheRotateInterval / partitionCacheNumShards)
51
>
defer t.Stop()
52
>
for i := 0; ; i = (i + 1) % partitionCacheNumShards {
53
>
select {
54
case <-t.C:
55
c.shards[i].rotate()